centos 渗透?centos7安装第三方软件
这篇文章给大家聊聊关于centos 渗透,以及centos7安装第三方软件对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
7. 渗透--信息收集(一)
完成dns、搜索引擎google、ssl、备案号、暴力破解、app反编译、微信公众号、jsfinder获取二级域名信息
whois:标准的互联网协议,经常用来收集目标域名相关信息,网络注册信息,注册域名、ip地址等信息
可根据以下方法进行子域名探测:
[1]. dns域传送漏洞
在kali下使用 dnsenum参数域名命令,来收集一个域的信息。
主要参数:
-h查看工具使用帮助
-dnsserver<server>指定域名服务器
-enum快捷键相当于"--threads 5-s 15-w"(启动5线程,谷歌搜索15条子域名)
-f dns.txt指定字典文件
-w(--whois)在一个c段网络地址范围提供whois查询
--noreverse跳过反向查询操作
[2]备案号查询
网站备案查询地址:
根据域名在相关网站上找到备案号信息,在根据备案号信息查找到相关域名信息。
[3] ssl证书查询
通过查询SSL证书,获取的域名存活率很高。
查询网址: 和
[4]google搜索c段
旁站:旁站是和目标网站在同一台服务器上的其它的网站。
C段:C段是和目标服务器ip处在同一个C段的其它服务器。
使用网站webscan.cc查询旁站c段。
1.参考googleHack用法:
2.用DotNetScan工具
工具地址:VStart50\VStart50\tools\漏洞利用\IISPutScanner增强版
[5] app提取
反编译APP可进行提取相关IP地址等操作。
[6]微信公众号
[7] JsFinder查找子域名
将JsFinder.py复制到kali系统文件夹下,进入该文件夹使用命令进行查询。
-d:表示深度爬取
[8]字典枚举
字典枚举法是一种传统查找子域名的技术,这类工具有 DNSReconcile、Layer子域名挖掘机、DirBuster等。
FOFA是网络空间安全搜索引擎,收录的是设备而不是网页。能够探索全球互联网资产信息。
网站是fofa.so
搜索语法为:
ip=“1.1.1.1”搜索与此ip相关的网站
port="8009"查找开发了8009端口的服务器
domain="qq.com"搜索跟域名带有qq.com的网站
PS:指纹识别:其核心原理是通过正则表达式匹配特征码或匹配文件的md5值等特殊信息,进而识别web应用程序的名称和版本,收集信息。
常见指纹检测的对象
1、CMS信息:比如大汉CMS、织梦、帝国CMS、phpcms、ecshop等;
2、前端技术:比如HTML5、jquery、bootstrap、pure、ace等;
3、Web服务器:比如Apache、lighttpd, Nginx, IIS等;
4、应用服务器:比如Tomcat、Jboss、weblogic、websphere等;
5、开发语言:比如PHP、Java、Ruby、Python、C#等;
6、操作系统信息:比如linux、win2k8、win7、kali、centos等;
7、CDN信息:是否使用CDN,如cloudflare、360cdn、365cyd、yunjiasu等;
8、WAF信息:是否使用waf,如Topsec、Jiasule、Yundun等;
9、IP及域名信息:IP和域名注册信息、服务商信息等;
10、端口信息:有些软件或平台还会探测服务器开放的常见端口。
ssh——渗透篇
SSH,全称Secure Shell,是一种可靠且专为远程登录会话和网络服务提供安全性的应用层协议。SSH提供两种级别的安全验证:基于口令的安全验证与基于密匙的安全验证。
SSH配置文件位于/etc/ssh/sshd_config。SSH服务名称为sshd。.ssh目录位于用户的根目录。
了解ssh和sshd的区别:ssh运行在客户端,sshd运行在服务端,用于开启shell窗口以完成连接。配置文件中可设置参数如Port 22(指定监听端口号)、ListenAddress 0.0.0.0(指定监听IP地址)、PermitRootLogin(允许root用户远程登录)、PermitEmptyPasswords(允许使用空密码登录)等。
nmap扫描命令:nmap-Pn-A-T4-p 22 172.20.10.0/24,用于信息收集。
Hydra和medusa工具用于SSH暴力破解。Hydra命令示例:hydra-l root-P pass.txt-f ssh://192.168.80.11,medusa命令示例:medusa-h 192.168.80.11-u root-P dic.txt-M ssh-f。
通过软链接创建后门,如在靶机上操作:which sshd查找路径,ln-s/usr/sbin/sshd/tmp/su创建软链接。使用ls-alh显示链接地址,/tmp/su-oport=12345运行软链接开启监听端口,使用ssh-p 12345 root@192.168.1.5登录。原理基于SSH默认调用PAM进行身份验证,PAM是Linux系统中的独立API,提供统一的身份验证机制。
修改端口号,通过修改/etc/ssh/sshd_config文件并重启服务。关闭SSH的PAM认证与禁用口令认证,可进一步提高安全性。
iptables防火墙设置在CentOS中,需要下载iptables和iptables-services,然后启动服务并创建规则。SSH登录信息查看使用命令如lastb、lastlog、w、vim/var/log/secure。
SSH远程登录示例:ssh root@192.168.1.9。使用密钥登录需指定私钥文件路径。scp命令用于文件安全复制,支持本地文件到远程服务器或远程文件到本地。
SSH的密钥认证,公钥需上传至SSH服务器的/root/.ssh/authorized_keys文件。在客户端生成密钥对,上传公钥后,即可实现无密码登录。Windows生成ssh密钥对需使用相应工具,并将密钥复制至目标主机的/root/.ssh/authorized_keys目录。
禁用密码认证,修改配置文件中的PasswordAuthentication和ChallengeResponseAuthentication参数设置为no。
一次艰难的渗透提权过程
某日,我接到了朋友的一条shell,任务是提权。拿到shell后,发现无法通过常见的工具如菜刀或蚁剑执行命令。深入分析后,我首先查看了phpinfo信息,发现是宝塔环境。联系开发工程师后,了解到Windows环境下提权较为困难,于是转向Linux环境探索。
在Linux环境下,我尝试利用putenv函数绕过某些限制。参考了P神的文章以及exploit-db.com上的POC,但未成功。经过多次尝试,我继续寻找解决方案。
在浏览GitHub时,我发现了利用LD_PRELOAD功能绕过某些限制的姿势。按照该姿势尝试了编译代码并上传调用文件,但在利用过程中,发现没有回显。经过进一步研究,我找到了利用LD_PRELOAD和putenv结合的方法,最终成功绕过限制。尽管成功,但这种方式在执行代码时存在不便,如缺乏回显和执行带参数命令时的错误提示。
在后续尝试中,我发现了利用LD_PRELOAD功能结合centos环境的更有效方法。通过阅读大佬的文章,我了解到了使用for循环修改LD_PRELOAD首个字符为\0,这一小动作能够让系统原有的LD_PRELOAD环境变量失效,从而实现绕过限制的目的。同时,作者提供了修复版的bypass.c代码,该代码能通过环境变量接收待执行命令行,从而实现安全的执行。
在研究过程中,我发现了利用mail()函数劫持getuid()的另一种方法。基本原理是在Linux环境中,mail()函数在执行过程中会默认调用系统程序/usr/sbin/sendmail,而sendmail会调用getuid()。通过LD_PRELOAD,可以劫持getuid()函数,进而执行恶意代码。我编写了一个原型为uid_t getuid(void)的C函数,内部执行攻击者指定的代码,编译为共享对象evil.so,并通过putenv()设定环境变量LD_PRELOAD为evil.so,最终利用mail()函数执行恶意代码。
成功利用后,我通过Python的反弹脚本执行命令并监听,实现了与目标服务器的交互。根据版本信息,我确认了目标系统的版本为2.6,属于较为旧的版本,因此可以利用脏牛漏洞进行提权。我选择在本地环境中编译并上传执行脏牛脚本,成功将root权限替换,实现了对目标服务器的登陆。
登陆后,我及时恢复了/etc/passwd文件,并学习了一篇关于后门的文章,了解了如pam补丁、隐藏文件、suid和inetd等可以用于创建后门的方法。同时,我安装了socat工具以连接后门。
为了实现横向渗透,我使用了metasploit工具。考虑到当前环境为外网服务器,我选择了生成Meterpreter会话并监听等待上线。然而,我意识到这并不是内网渗透的典型场景,因此决定将精力放在其他类型的内网渗透场景上,以便将来撰写相关文章。
完成任务后,我提醒自己清理痕迹,以避免被管理员发现或溯源。最后,我在凌晨两点抽支烟,准备洗洗睡,希望晚安时能得到一个平静的夜晚。