㈠ php探针怎么测试服务器isapi版本
png,jpeg,zlib,freetype,freeTDS,awstats)安装与配置
作者:swingcoder(at)msn(dot)com
日期:2004-3-25
一、前言
安装的问题很多人都第一次要面对的,既简单又麻烦。很多老鸟都对如何安装的问题不屑,说:问来问去都是安装的问题。
希望这的贴子对新手能有点帮助,老鸟的话,就不用看了,免得拍砖。谢谢~~
本文所有软件均使用最新版(至发布日期),但是又有人说了,什么版本不稳定啦,这不好那不好啦。Cut!就此打住,我也不想为这些问题纠缠不清了,此文仅仅是安装。先让大家用起来,具体的优化安全以后再说,应了一句话“先让一部分人先富起来!“。
虽然仍然是重复劳动,但至少是自己的经验,不想丢了,写完后自己以后也可以看看,顺便整理整理。
二、目的
安装Apahe与MySQL,将php安装成支持gif,png,jpeg,freetype,mssql,mysql,需要更强大的图形处理能力,可安装ImageMagic。可以分析大流量网站日志(更大流量的网站推荐用Webalizer,不过界面简陋:-,)。
二、安装环境描述
操作系统:GNU linux kernel 2.4.20
web服务器:Apache httpd-2.0.48 下载:
数据库服务器:mysql-standard-4.0.17-pc-linux-i686 下载:
脚本程序语言:PHP Version 4.3.5RC5-dev 下载:
其它库文件:
ZLIB:zlib-1.2.1.tar.gz 下载:
FreeType:freetype-2.1.5.tar.gz 下载:
PNG:libpng-1.2.5.tar.gz 下载:
JPEG:jpegsrc.v6b.tar.gz 下载:
GD:gd-2.0.18.tar.gz 下载: #2.0不支持GIF?好像限制又过期了
FreeTDS:freetds-stable.tgz 下载:
Cronolog:cronolog-1.6.2.tar.gz 下载:
Awstats:awstats-5.9.tgz 下载:
三、安装步骤
1、安装Apache
tar xzvf httpd-2.0.48.tar.gz
cd httpd-2.0.48
./configure --prefix=/usr/local/apache --enable-so
make
make install
echo "/usr/local/apache/bin/apachectl start&" >> /etc/rc.d/rc.local
#启动
/usr/local/apache/bin/apache start
2、安装MySQL
tar xzvf mysql-standard-4.0.17-pc-linux-i686.tar.gz
#此处下载的的二进制分发包,故没有./configure步骤
mv mysql-standard-4.0.17-pc-linux-i686 /usr/local/mysql
cd /usr/local/mysql
#下步cp要看服务器硬件环境,可选small,medium,large,huge
cp support-files/my-medium.cnf /etc/my.cnf
echo "/usr/local/mysql/bin/safe_mysqld --user=mysql&" >> /etc/rc.d/rc.local
groupadd mysql
useradd -g mysql mysql
./scripts/mysql_install_db
chown -R mysql.mysql data
#启动
/usr/local/mysql/bin/safe_mysqld --user=mysql&
3、安装PHP
A、先安装支持包(注意安装顺序)
建立初始目录:
#php目录
mkdir /usr/local/php
mkdir /usr/local/php/moles
#freetype目录
mkdir /usr/local/php/moles/freetype
#jpeg目录
mkdir /usr/local/php/moles/jpeg6
mkdir /usr/local/php/moles/jpeg6/bin
mkdir /usr/local/php/moles/jpeg6/lib
mkdir /usr/local/php/moles/jpeg6/include
mkdir /usr/local/php/moles/jpeg6/man
mkdir /usr/local/php/moles/jpeg6/man/man1
#gd目录
mkdir /usr/local/php/moles/gd
#freeTDS目录
mkdir /usr/local/php/moles/freetds
A1、安装zlib
tar xzvf zlib-1.2.1.tar.gz
cd zlib-1.2.1
#不要用--prefix自定义安装目录,影响gd的安装
./configure
make
make install
A2、安装freetype
tar xzvf freetype-2.1.5.tar.gz
cd freetype-2.1.5
./configure --prefix=/usr/local/php/moles/freetype
make
make install
A3、安装libpng
tar xzvf libpng-1.2.5.tar.gz
#不要用--prefix自定义安装目录,影响gd的安装
cd libpng-1.2.5
cp scripts/makefile.std makefile
make test
make install
A3、安装jpeg
tar xzvf jpegsrc.v6b.tar.gz
./configure --prefix=/usr/local/php/moles/jpeg6 --enable-shared --enable-static
make
make install
A4、安装GD
tar xzvf gd-2.0.18.tar.gz
./configure --prefix=/usr/local/php/moles/gd --with-jpeg=/usr/local/php/moles/jpeg6 --with-png --with-zlib --with-freetype=/usr/local/php/moles/freetype
make
make install
A5、安装FreeTDS
tar zxvf freetds-stable.tgz
cd freetds-stable
./configure --prefix=/usr/local/php/moles/freetds
make
make install
B、安装Cronolog
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
C、安装PHP
tar xzvf php4-STABLE-latest.tar.tar
cd php4-STABLE-latest
./configure --prefix=/usr/local/php --with-jpeg=/usr/local/php/moles/jpeg6 --with-zlib --with-png --with-gd=/usr/local/php/moles/gd --with-freetype=/usr/local/php/moles/freetype --with-mssql=/usr/local/php/moles/freetds --enable-magic-quotes --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
make
make install
四、一些特别的配置
1、配置Apache
修改httpd.conf文件:
#增加处理性能
MaxClient 250
StartServers 10
#设置PHP
LoadMole php4_mole libexec/libphp4.so
#AddMole mod_php4.c
AddType application/x-httpd-php .php
#This directive configures what you return as the Server HTTP response Header
ServerTokens Minor
#Optionally add a line containing the server version and virtual host name to server-generated pages
ServerSignature Off
#设置日志存储格式
CustomLog "|/usr/local/sbin/cronolog /usr/local/apache/logs/access_%y%m%d.log" combined
2、配置Awstat
#!!此程序需要perl的支持!!
tar xzvf awstats-5.9.tgz
mkdir /usr/local/apache/cgi-bin/webstat/
mkdir /usr/local/apache/weblog/
cd awstat/www/
cp icon/* /usr/local/apache/icons/
cp cgi-bin/ /usr/local/apache/cgi-bin/webstat/
cd /usr/local/apache/cgi-bin/webstat/
cp awstat.model.conf awstat.
#修改awstat.中下...?用默认值:
vi awstat.
LogFile="/usr/local/apache/logs/access_%YY%MM%DD.log"
SiteDomain=""
DirData="/usr/local/apache/weblog/"
DirIcons="/icons"
#修改awstats.pl为0777
chmod 0777 awstats.pl
#设置计划任务
crontab -e
55 23 * * * (/usr/local/apache/cgi-bin/webstat/awstats.pl -update -config=>/dev/null)
3、配置MySQL
修改root用户密码
/usr/local/mysql/bin/mysqladmin -u root password 'your-new-password'
删除host为%和密码为空的用户
调整性能:
max_connections=250 #default is 100 #影响pconnect数量
table_cache=128 #default 64,调整值根据实际情况而定,一般如果Open_tables 达到table_cache值,且Opened_tables仍在快速增长,要增大该值。
key_buffer_size= #根据实际情况而定,一般Key_reads : Key_read_requests小于1:1000
4、配置PHP
默认安装的PEAR有,如果用不上的话可以删除:
[PEAR] DB - installed: 1.6.0
[PEAR] HTTP - installed: 1.2.2
[PEAR] Mail - installed: 1.1.2
[PEAR] Net_SMTP - installed: 1.2.3
[PEAR] Net_Socket - installed: 1.0.1
[PEAR] XML_Parser - installed: 1.0.1
[PEAR] XML_RPC - installed: 1.0.4
更多信息请参考:
五、常见问题
1、安装PHP
a、checking lex output file root... ./configure: line 2425: lex: command not found
configure: error: cannot find output from lex; giving up
缺少flex-2.5.4a-29.i386.rpm,从linux 9.0光盘中找到flex-2.5.4a-29.i386.rpm,安装,重新编译php,ok.
b、ext/gd/gd.lo(.text+0x875): undefined reference to `gdFreeFontCache'
*** Error code 1
php.net官方人士说是安装了不同版本的GD或者推荐安装低版本的php,但我是安装了高于php-4.3.4.tar.gz后解决了此问题。
参考:
2、安装jpeg
一定要选择./configure --enable-shared --enables-static --prefix=/usr/local方式安装,否则不能make install !!!
若没有装libtool-1.4.3-5.i386.rpm,不能创建共享libjpeg库,即不是能--enable-shared指令编译。
装libtool之前要装m4-1.4.1-13.i386.rpm,automake,autoconf及
若您下载的包为zip格式jpegsr6.zip时,./configure 时出现: bad interpreter:,原因是dos换行跟unix换行符不同造成的,在editplus在转换格式后,jpeg-6a安装成功
3、安装libpng
安装之前要先安装zlib, 且不有自定义目录,否则装gd时找不到库文件。
4、安装MySQL
此文中因为安装的是二进制分发包,帮没有configure,如果是源码包,依照如下格式安装。
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> tar xzvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/data
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
五、参考资源
1、apache
2、mysql
3、php
4、GD
5、FreeTDS
6、Cronolog
7、Awstats
8、Webalizer
六、总结
上述仅仅是简单的安装跟一些简单的配置,肯定存在不少漏洞,希望大家多多留心,任何程序和配置,最关键的在决定因素往往在于--“配置者”本身。希望对有需要的人有一定的帮助。
如果你不想装apache可以略过apache安装那部分
㈡ 内网渗透--对不出网目标的打法
配置网络
在VM虚拟机中按照下边的网络拓扑进行配置网络。网络拓扑图如下:
win7具有双网卡,其中外网ip是192.168.8.133,内网网段是52。三台机器彼此互通,但是win server 2008和win2003不通外网。用我mac作为攻击机,来对这个靶场环境进行渗透测试。
外网打点
在win7这台靶机上,使用PHPStudy让网站可以运行起来。在攻击机上,访问 http://192.168.8.133 可以看到是一个phpStudy 探针。对这网站进行渗透,因为本文主要写在内网渗透过程中对不出网主机的渗透,所以此处外网打点就不写的很详细了。
针对此靶场进行外网渗透拿权限大致有这几种方法:
通过phpmyadmin弱口令,进入phpmyadmin后台。然后知识点就变成了,通过phpmyadmin进行getshell,这个点又分为,得到网站绝对路径后,使用select into outfile的方式写shell和利用日志写shell。在此处,我是使用日志写shell的方法拿到权限。因为secure_file_priv配置为null,禁止修改目录下的文件,也就不能使用into outfile的方式写入shell。
通过目录扫描可以扫出beifen.rar,备份文件。在源码中可以找到登陆后台的账号密码:admin/123456和登陆路径/index.php?r=admin,在前台模板文件中添加一句话木马连接也可获取shell。
获得webshell的信息收集
通过外网打点获得的webshell,可以进行一波信息收集,摸清我是谁?我在哪?有没有内网环境?有没有杀软?通过拿到webshell后的信息收集的结果来评估一下有没有必要继续深入或者初步了解继续深入的话需要哪些手段。
我是谁?
蚁剑已经给出基础信息
我在哪?
使用ipconfig /all 看一下网络信息
目标有两个网卡,并且存在域环境,那么就有打它内网的必要了。
有没有杀软?
tasklist查看一下进程信息
根据进程查一下是否有杀软
目标没有使用杀软,还有域环境那么让它直接cs上线。
内网渗透
cs上线
内网信息收集
信息收集每个人都有自己的习惯,信息收集的顺序和信息收集的项目也都不太一样,只要根据自己的习惯和嗅觉,针对目标具体情况进行收集,以求尽快的拿下目标就好。信息收集的越全面突破口也就会越多,考虑到篇幅和文章内容匹配度等因素,此处并没有写出大量信息收集方法。
使用cs自带的net view查看域信息。
使用cs自带功能进行端口扫描,分别对8和52两个网段进行扫描进行完这两个步骤以后,cs会把扫到的目标列出来。
因为拿到的是管理员权限,可以先抓一波密码。用 cs 的 hashmp 读内存密码,用 mimikatz 读注册表密码:logonpasswords。
此处打码的地方是因为配置靶机登陆时靶机提示重置密码,我给靶机改了个包含个人信息的密码。蠢哭。拿到密码后,目标主机没有开启防火墙,可以使用cs自带的psexec做一波横向,因为抓到很多域中机器密码,域控密码也抓到了。
内网横向(通过登录凭证)
这个靶机设置的比较简单,抓到密码后,因为抓到了域控登陆的凭证,那么使用psexec即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用smb beacon
配置listener通过HTTP代理上线
使用pystinger搭建socks4代理
这几种方式之前有师傅也在先知写过 《不出网主机上线方法》 。此处我采用的SMB beacon这个方法。
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 SMB Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用方法:
1.建立smb的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到smb beacon上线的主机右侧有∞∞标识
使用这种方法上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
内网横向(通过ms-17010)
在拿下win7的时候,可以给它传一个fscan,给win7做一个内网大保健。上传fscan后,运行扫一下内网。
发现存在ms17010。
ms17010常见的几种打法:
msf
ladon/ladon_ms17010
从msf分离出的exe
nessus里的exe
cs插件
这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果。msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网网络不稳定的情况下成功率会变的更低。
这个图片的ip可能跟上边配置符不起来,因为我在测试过程中,网断过几次,ip就变了。所以,在打的时候,如果ladon和分离出的exe没有打成,不要轻易放弃,用msf在打打试试,毕竟工具就是工具,不能过分依赖某个工具。
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口。根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”。
msf打不出网机器的ms17010
msf在单兵作战的时候还是很稳定很香的。首先,让出网机器先在msf上线,可以用cs直接传递会话,或者生成个msf马直接运行一下。在这的方法就很多了。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切换到后台,然后使用ms17010模块进行漏洞利用,监听时使用正向监听,即可
小贴士:
漏洞检测方法:
use auxiliary/scanner/smb/smb_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/smb/ms17_010_command
exploit/windows/smb/ms17_010_eternalblue
exploit/windows/smb/ms17_010_psexec
这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/smb/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/smb/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个smb beacon然后使用psexec对内网两台不出网的机器进行横向。
㈢ 如何查看一个网站的服务器端信息
在了解一个网站的服务器端信息方面,我们首先要明确这是两个不同的概念。一方面,服务器信息包括服务器的类型、运行的操作系统、支持的编程语言以及服务器的IP地址、磁盘空间等基本信息。这些信息可以通过网络工具或者专门的探针软件来获取,比如PHP探针、ASP探针等,它们能够帮助我们快速查看到服务器的基本情况。
另一方面,网站采用的源码语言则可以通过查看文件的后缀名来大致判断。比如,如果你发现一个网站的文件后缀是.php,那么很可能这个网站是使用PHP语言编写的;如果后缀是.htm或者.html,那么这个网站很可能是用HTML语言编写的。其他类似的语言还有ASP、JSP、Python、Ruby等,每种语言都有其特定的文件后缀。
了解这些信息对于网站维护、安全检查以及开发人员的工作都是非常重要的。通过这些工具和方法,我们可以更加深入地了解一个网站背后的运行机制,从而更好地进行维护和优化。
为了获取更详细的信息,你可以使用一些在线工具,如在线探针,它们能够提供更为详细的服务器配置信息。此外,还可以通过查看网站源代码直接查看其使用的编程语言和其他技术栈,这对于深入理解和分析一个网站的技术架构非常有帮助。
需要注意的是,获取服务器端信息时要遵守相关法律法规,确保自己的行为合法合规。在实际操作中,通常需要获得网站所有者的授权才能进行详细的信息查询。