[lxc-devel] [distrobuilder/master] Add kali-linux distro
Re4son on Github
lxc-bot at linuxcontainers.org
Fri May 24 21:49:26 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 349 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190524/627e4b5a/attachment.bin>
-------------- next part --------------
From 8dac9aaa0e7368fe8be1e9d2743e345ef619a8dc Mon Sep 17 00:00:00 2001
From: Re4son <Re4son at users.noreply.github.com>
Date: Thu, 23 May 2019 15:34:06 +1000
Subject: [PATCH] Add kali-linux distro
Signed-off-by: Re4son <re4son at kali.org>
---
doc/examples/kali | 124 ++++++++++++++++++++++
doc/examples/kali-with-core-packages | 151 +++++++++++++++++++++++++++
shared/definition.go | 1 +
shared/definition_test.go | 3 +
shared/osarch.go | 8 ++
shared/osarch_test.go | 13 +++
6 files changed, 300 insertions(+)
create mode 100644 doc/examples/kali
create mode 100644 doc/examples/kali-with-core-packages
diff --git a/doc/examples/kali b/doc/examples/kali
new file mode 100644
index 0000000..5a9554e
--- /dev/null
+++ b/doc/examples/kali
@@ -0,0 +1,124 @@
+image:
+ distribution: "kali"
+ release: kali-rolling
+
+source:
+ downloader: debootstrap
+ url: http://http.kali.org/kali
+ keyserver: keys.gnupg.net
+ keys:
+ - 44C6513A8E4FB3D30875F758ED444FF07D8D0BF6
+ variant: minbase
+ apt_sources: |-
+ deb http://http.kali.org/kali {{ image.release }} main non-free contrib
+
+targets:
+ lxc:
+ create-message: |-
+ You just created a {{ image.description }} container.
+
+ To enable SSH, run: apt install openssh-server
+ No default root or user password are set by LXC.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/kali.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/kali.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_personality }}
+
+files:
+ - path: /etc/hostname
+ generator: hostname
+
+ - path: /etc/hosts
+ generator: hosts
+
+ - path: /etc/resolvconf/resolv.conf.d/original
+ generator: remove
+
+ - path: /etc/resolvconf/resolv.conf.d/tail
+ generator: remove
+
+ - path: /etc/machine-id
+ generator: remove
+
+ - path: /etc/network/interfaces
+ generator: dump
+ content: |-
+ # This file describes the network interfaces available on your system
+ # and how to activate them. For more information, see interfaces(5).
+
+ # The loopback network interface
+ auto lo
+ iface lo inet loopback
+
+ auto eth0
+ iface eth0 inet dhcp
+
+packages:
+ manager: apt
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - dialog
+ - ifupdown
+ - isc-dhcp-client
+ - locales
+ - netbase
+ - net-tools
+ - openssh-client
+ - vim
+ - systemd
+ - kali-archive-keyring
+ action: install
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Make sure the locale is built and functional
+ echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
+ locale-gen en_US.UTF-8 UTF-8
+ update-locale LANG=en_US.UTF-8
+
+ # Cleanup underlying /run
+ mount -o bind / /mnt
+ rm -rf /mnt/run/*
+ umount /mnt
+
+ # Cleanup temporary shadow paths
+ rm /etc/*-
+
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+ apt-get install iproute2 init -y
+ releases:
+ - kali-rolling
+
+mappings:
+ architecture_map: kali
diff --git a/doc/examples/kali-with-core-packages b/doc/examples/kali-with-core-packages
new file mode 100644
index 0000000..cfab995
--- /dev/null
+++ b/doc/examples/kali-with-core-packages
@@ -0,0 +1,151 @@
+image:
+ distribution: "kali"
+ release: kali-rolling
+
+source:
+ downloader: debootstrap
+ url: http://http.kali.org/kali
+ keyserver: keys.gnupg.net
+ keys:
+ - 44C6513A8E4FB3D30875F758ED444FF07D8D0BF6
+ variant: minbase
+ apt_sources: |-
+ deb http://http.kali.org/kali {{ image.release }} main non-free contrib
+
+targets:
+ lxc:
+ create-message: |-
+ You just created a {{ image.description }} container.
+
+ To enable SSH, run: apt install openssh-server
+ No default root or user password are set by LXC.
+
+ config:
+ - type: all
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/kali.common.conf
+
+ - type: user
+ before: 5
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/kali.userns.conf
+
+ - type: all
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/common.conf
+
+ - type: user
+ after: 4
+ content: |-
+ lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
+
+ - type: all
+ content: |-
+ lxc.arch = {{ image.architecture_personality }}
+
+files:
+ - path: /etc/hostname
+ generator: hostname
+
+ - path: /etc/hosts
+ generator: hosts
+
+ - path: /etc/resolvconf/resolv.conf.d/original
+ generator: remove
+
+ - path: /etc/resolvconf/resolv.conf.d/tail
+ generator: remove
+
+ - path: /etc/machine-id
+ generator: remove
+
+ - path: /etc/network/interfaces
+ generator: dump
+ content: |-
+ # This file describes the network interfaces available on your system
+ # and how to activate them. For more information, see interfaces(5).
+
+ # The loopback network interface
+ auto lo
+ iface lo inet loopback
+
+ auto eth0
+ iface eth0 inet dhcp
+
+packages:
+ manager: apt
+ update: true
+ cleanup: true
+
+ sets:
+ - packages:
+ - dialog
+ - ifupdown
+ - isc-dhcp-client
+ - locales
+ - netbase
+ - net-tools
+ - openssh-client
+ - vim
+ - systemd
+ - iw
+ - kali-defaults
+ - mlocate
+ - netcat-traditional
+ - net-tools
+ - psmisc
+ - screen
+ - tmux
+ - wget
+ - zerofree
+ - exploitdb
+ - hydra
+ - john
+ - medusa
+ - metasploit-framework
+ - mfoc
+ - ncrack
+ - nmap
+ - passing-the-hash
+ - proxychains
+ - recon-ng
+ - sqlmap
+ - tcpdump
+ - theharvester
+ - tor
+ - tshark
+ - whois
+ - kali-archive-keyring
+ action: install
+
+actions:
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+
+ # Make sure the locale is built and functional
+ echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
+ locale-gen en_US.UTF-8 UTF-8
+ update-locale LANG=en_US.UTF-8
+
+ # Cleanup underlying /run
+ mount -o bind / /mnt
+ rm -rf /mnt/run/*
+ umount /mnt
+
+ # Cleanup temporary shadow paths
+ rm /etc/*-
+
+ - trigger: post-packages
+ action: |-
+ #!/bin/sh
+ set -eux
+ apt-get install iproute2 init -y
+ releases:
+ - kali-rolling
+
+mappings:
+ architecture_map: kali
diff --git a/shared/definition.go b/shared/definition.go
index 058a32b..3f8bd16 100644
--- a/shared/definition.go
+++ b/shared/definition.go
@@ -333,6 +333,7 @@ func (d *Definition) Validate() error {
"centos",
"debian",
"gentoo",
+ "kali",
"plamolinux",
}
diff --git a/shared/definition_test.go b/shared/definition_test.go
index a4099d9..2db51e9 100644
--- a/shared/definition_test.go
+++ b/shared/definition_test.go
@@ -49,6 +49,9 @@ func TestValidateDefinition(t *testing.T) {
Mappings: DefinitionMappings{
ArchitectureMap: "debian",
},
+ Mappings: DefinitionMappings{
+ ArchitectureMap: "kali",
+ },
},
"",
false,
diff --git a/shared/osarch.go b/shared/osarch.go
index f0f67ef..5124075 100644
--- a/shared/osarch.go
+++ b/shared/osarch.go
@@ -41,6 +41,13 @@ var gentooArchitectureNames = map[int]string{
osarch.ARCH_64BIT_S390_BIG_ENDIAN: "s390x",
}
+var kaliArchitectureNames = map[int]string{
+ osarch.ARCH_32BIT_INTEL_X86: "i386",
+ osarch.ARCH_64BIT_INTEL_X86: "amd64",
+ osarch.ARCH_32BIT_ARMV7_LITTLE_ENDIAN: "armhf",
+ osarch.ARCH_64BIT_ARMV8_LITTLE_ENDIAN: "arm64",
+}
+
var plamoLinuxArchitectureNames = map[int]string{
osarch.ARCH_32BIT_INTEL_X86: "x86",
}
@@ -58,6 +65,7 @@ var distroArchitecture = map[string]map[int]string{
"centos": centosArchitectureNames,
"debian": debianArchitectureNames,
"gentoo": gentooArchitectureNames,
+ "kali": kaliArchitectureNames,
"plamolinux": plamoLinuxArchitectureNames,
}
diff --git a/shared/osarch_test.go b/shared/osarch_test.go
index 4068033..25c777f 100644
--- a/shared/osarch_test.go
+++ b/shared/osarch_test.go
@@ -38,6 +38,16 @@ func TestGetArch(t *testing.T) {
"s390x",
"s390x",
},
+ {
+ "kali",
+ "amd64",
+ "amd64",
+ },
+ {
+ "kali",
+ "x86_64",
+ "amd64",
+ },
}
for i, tt := range tests {
@@ -52,4 +62,7 @@ func TestGetArch(t *testing.T) {
_, err = GetArch("debian", "arch")
require.EqualError(t, err, "Architecture isn't supported: arch")
+
+ _, err = GetArch("kali", "arch")
+ require.EqualError(t, err, "Architecture isn't supported: arch")
}
More information about the lxc-devel
mailing list