目录

用 Arch Linux 打造完美渗透环境

简介Arch Linux

Arch Linux是一款通用x86_64的GNU/Linux发行版,它采用滚动更新模式,尽全力给用户提供最新的稳定版软件。

嘿嘿,很久不滚可能会滚挂哦

刚装完的Arch只是一个基本系统,什么都没有,随后用户就可以根据自己的想法和喜好,安装自己需要的软件,然后通过高度自定义的配置,打造自己喜欢的、理想的系统。这也是Arch的可爱和有吸引力之处。所以Arch也是我最喜欢的发行版之一。

关于Arch Linux的更多详细内容,请参见Arch Wiki

本期内容介绍

本期将会演示如何用Arch Linux打造完美的渗透环境。一切操作均为教程演示,请读者根据实际情况操作。没使用过Arch Linux的用户请谨慎操作,并仔细查阅Arch Wiki

那么,开始本期的内容吧。

提示

本期博客会大量使用Arch Wiki的超链接,以方便理解部分内容。

准备工作

安装Arch Linux

本期博客不会详细写出Arch Linux的安装过程,请参考Arch Wiki安装Arch Linux,并做好基本的配置工作。

选择轻量桌面环境

由于渗透测试中部分操作会占用大量的资源,所以请尽量按需求选择轻量的桌面环境,这里不建议使用 GnomeKDE,因为二者占用的资源非常大,对低配用户不友好。

  1. LXDE
  • 轻量级GTK桌面环境,默认窗口管理器是 OpenBox ,最轻量的桌面环境之一。
  1. LXQT
  • 2013年间,洪任諭(“PCMan”)启动了将 LXDE 移植到 Qt 的项目。所以LXQT相当于是使用QT的LXDE,默认窗口管理器还是 OpenBox ,它比上面的LXDE还要轻量。
  1. xfce4
  • 目前我在用的桌面环境,基于GTK+2,这个是轻量化桌面环境中最好看的一个了。
  1. i3wm
  • i3 是一种动态的平铺式窗口管理器,其灵感来自于面向开发者与资深用户的 wmii。 i3 的既定目标包括清晰可读的文档,完善的多显示器支持,基于树形结构的窗口管理,提供 vim 式的多种操作模式。 ——摘自Arch Wiki
  1. 自己DIY桌面环境

本期博客也将会使用自定义桌面环境进行演示。

OpenBox+xfce4-panel

添加Black Arch源

当Arch Linux基本配置完成之后,就可以开始正常使用了,但是为了安装渗透工具,需要添加一个Black Arch软件源

什么是Black Arch

BlackArch Linux,简称BlackArch,是一份基于Arch的Linux发行版。该发行版被设计用于系统渗透测试及安全研究。BlackArch提供一张自启动运行DVD镜像,其中包含有多个轻量级窗口管理器和一千多种用于渗透测试和计算机取证分析的专用工具。该系统即可以直接从镜像启动,也可以安装在硬盘、U盘或虚拟机上。 ——摘自维基百科(需要科学上网)

Black Arch官网:blackarch.org

如上我们知道,Black Arch是一个基于Arch Linux的独立发行版,但我们不需要去安装它,我们只需要添加它的软件源就好。

具体操作如下:

1
$ sudo nano /etc/pacman.conf # 编辑pacman.conf文件

pacman.conf文件的末尾加入以下内容:

1
2
3
[blackarch]
SigLevel = Optional TrustAll
Server = https://mirrors.ustc.edu.cn/blackarch/$repo/os/$arch

然后执行:

1
$ sudo pacman -Syyu

如果没问题,就可以使用Black Arch的软件源了。

开始安装、配置常用渗透工具

端口扫描和信息收集

Namp

首先搬出Nmap,这是一个很常用的扫描工具,可以在渗透的过程中扫描到对方的IP、端口、操作系统等情况。

安装方法
1
$ sudo pacman -S nmap
基本用法
1
$ nmap <目标IP地址> # 简单的扫描
1
$ sudo nmap -O <目标IP地址> # 扫描目标的操作系统情况
1
$ sudo nmap -sP <目标IP地址> # ping扫描

更多用法可参考搜索引擎查询。

xerosploit

这个扫描工具比Nmap要炫酷一些,色彩也比较好看,用法也很简单,比Metasploit还简单。

安装方法
1
$ sudo pacman -S xerosploit
用法
1
$ sudo xerosploit

然后执行help就可以看到软件自带的帮助文档了

nslookup

这个命令是查看域名记录的,可以查看Cname、A等各种记录。它包含在dnsutils这个包里

安装方法
1
$ sudo pacman -S dnsutils

安装这个包dnsutils即可。

我也不太了解这个,所以具体怎么用请自行百度、谷歌一下吧。

nbtscan

内网扫描工具,可以扫描IP段内是否有存活的IP,速度比nmap要快一些。但是只能用于局域网。

安装方法
1
$ sudo pacman -S nbtscan
使用方法
  • 基本扫描
1
$ sudo nbtscan  -r  192.168.16.0/24
  • 官方帮助文档
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"Human-readable service names" (-h) option cannot be used without verbose (-v) option.
Usage:
nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b bandwidth] [-r] [-q] [-s separator] [-m retransmits] (-f filename)|(<scan_range>) 
	-v		verbose output. Print all names received
			from each host
	-d		dump packets. Print whole packet contents.
	-e		Format output in /etc/hosts format.
	-l		Format output in lmhosts format.
			Cannot be used with -v, -s or -h options.
	-t timeout	wait timeout milliseconds for response.
			Default 1000.
	-b bandwidth	Output throttling. Slow down output
			so that it uses no more that bandwidth bps.
			Useful on slow links, so that ougoing queries
			don't get dropped.
	-r		use local port 137 for scans. Win95 boxes
			respond to this only.
			You need to be root to use this option on Unix.
	-q		Suppress banners and error messages,
	-s separator	Script-friendly output. Don't print
			column and record headers, separate fields with separator.
	-h		Print human-readable names for services.
			Can only be used with -v option.
	-m retransmits	Number of retransmits. Default 0.
	-f filename	Take IP addresses to scan from file filename.
			-f - makes nbtscan take IP addresses from stdin.
	<scan_range>	what to scan. Can either be single IP
			like 192.168.1.1 or
			range of addresses in one of two forms: 
			xxx.xxx.xxx.xxx/xx or xxx.xxx.xxx.xxx-xxx.
Examples:
	nbtscan -r 192.168.1.0/24
		Scans the whole C-class network.
	nbtscan 192.168.1.25-137
		Scans a range from 192.168.1.25 to 192.168.1.137
	nbtscan -v -s : 192.168.1.0/24
		Scans C-class network. Prints results in script-friendly
		format using colon as field separator.
		Produces output like that:
		192.168.0.1:NT_SERVER:00U
		192.168.0.1:MY_DOMAIN:00G
		192.168.0.1:ADMINISTRATOR:03U
		192.168.0.2:OTHER_BOX:00U
		...
	nbtscan -f iplist
		Scans IP addresses specified in file iplist.

这个我也不是很了解,因为平时都用nmap。

burpsuite

抓包神器,需要安装java依赖。

安装方法
1
$ sudo pacman -S burpsuite
使用方法

burpsuite有图形界面,可以通过搜索引擎找到使用方法。

图形界面的东西不好讲,图片一多博客就加载不出来了,请见谅。

暴力破解、密码生成

hydra

暴力破解工具,中文名九头蛇,功能很强大。

安装方法
1
$ sudo pacman -S hydra
使用方法
  • 爆破ssh端口
1
$ hydra -l <用户名> -P <密码字典.txt> -v -e ns -t <次数> <目标IP> ssh

具体使用方法可以通过搜索引擎查询。

crunch

强大的密码字典生成器。

安装方法
1
$ sudo pacman -S crunch
使用方法

Crunch中的特殊字符有:

1
2
3
4
5
6
7
'%' 插入数字

'@' 插入小写字母

',' 插入大写字母

'^' 插入符号

Crunch中用到的命令参数有:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-b #按大小分割字典文件,比如后跟20mib

-c #密码个数(行数),比如8000

-d #限制出现相同元素的个数(至少出现元素个数),-d 3就不会出现aabbbb之类的情况

-e #定义停止生成密码 ,比如-e abcd:到abcd停止生成密码

-f #调用密码库文件,比如-f charset.lst mixalpha-numeric 意为调用密码库 charset.lst中的 mixalpha-numeric项目字符

-i #改变输出格式

-l #与-t搭配使用

-m #与-p搭配使用

-o #保存为

-p #定义密码元素

-q #读取字典

-r #定义从某一个地方重新开始

-s #第一个密码,从xxx开始

-t #定义输出格式

-z #打包压缩,格式支持 gzip, bzip2, lzma, 7z

生成最小1位,最大8位,由26个小写字母为元素的所有组合:

1
$ crunch 1 8 >> 1.txt

生成 最小为1,最大为4.由abcd为元素的所有组合:

1
$ crunch 1 4 abcd >> 2.txt

生成以“yale”“test”为元素的所有密码组合:

1
$ crunch 4 5 -p yale test

还有更多的方法可以自行通过搜索引擎查找。

漏洞利用

metasploit

这是最重要的一个工具,没有它,内网的渗透也是无法完整进行的。

安装方法
1
$ sudo pacman -S metasploit

安装完后执行:

1
$ sudo msfconsole

即可。

修复数据库问题

启动msf以后是不是出现了三行报错?这是没有连接数据库导致的。

安装postgresql
1
$ sudo pacman -S postgresql
配置postgresql

安装完后会多出来一个用户,叫做postgres,我们需要给它设置一个密码。

1
$ sudo passwd postgres

然后初始化数据库

1
$ sudo su - postgres -c "initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'"

初始化完成后就可以启动数据库了

1
$ sudo systemctl start postgresql

接下来,进入数据库用户postgres

1
$ sudo su postgres

执行psql

1
$ psql

然后光标就变成了postgres=#

1
postgres=#

如上面这个样子。

接下来创建一个数据库的新用户,比如msf4

1
postgres=# CREATE USER msf4 WITH PASSWORD '123456';

然后创建对应的数据库

1
postgres=# CREATE DATABASE msfdb OWNER msf4;

将msfdb数据库的所有权限都赋予msf4

1
postgres=# GRANT ALL PRIVILEGES ON DATABASE msfdb TO msf4;

退出psql

1
postgres=# \q

创建Linux普通用户,名称与刚才新建的数据库用户同名,如msf4

1
$ sudo useradd msf4
通过msf连接数据库

进入msf,链接数据库,命令为db_connect用户名:密码@ip/数据库名

1
msf5> db_connect msf4:123456@127.0.0.1/msfdb

然后检查是否连接成功,如果出现类似以下内容说明成功了。

1
2
msf5 > db_status
[*] Connected to msf3. Connection type: postgresql. Connection name: DFz5oEX3.

成功连接后,别忘了保存以及设置postgresql自启

1
msf5 > db_save
1
$ sudo systemctl enable postgresql
使用方法

参考这篇文章

也可通过搜索引擎找更多的教程。

sqlmap

强大的web注入工具,使用方法可以通过搜索引擎查到。

安装方法

执行以下命令安装即可。

1
$ sudo pacman -S sqlmap

DNS劫持

ettercap

强大的DNS劫持工具,各大搜索引擎也有不少教程。它分为命令行版本和图形化版本,但是只能装其中一个,否则会冲突。

安装方法

命令行版:

1
$ sudo pacman -S ettercap

图形化版:

1
$ sudo pacman -S ettercap-gtk

命令行版本在终端执行即可,图形化版本可以在菜单中找到,如果没有执行以下命令

1
$ sudo ettercap -G

apache

怎么还有这个东西?这个东西不是建网站的吗,哈哈,其实这个是辅助ettercap的,当你劫持目标DNS以后,会将其强行解析到你的IP,而apache就可以在你的机器上运行一个静态网页(html)。

安装方法
1
$ sudo pacman -S apache
使用方法

执行以下命令启动apache

1
$ sudo systemctl start httpd

网页根目录为/srv/http/

可以在目录下写一个html文件,写完执行

1
$ sudo systemctl restart httpd

以重启apache即可。

小结

一个普通的Arch Linuxu导入了Black Arch的软件源之后,可以堪称完美的渗透环境了,以上只是常用的工具,而Black Arch软件源里面有几千个工具,想要什么可以通过pacman下载安装,应有尽有。

最后,谢谢访问。