前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一句话开启HTTP服务

一句话开启HTTP服务

作者头像
信安之路
发布2018-08-08 11:28:36
1.5K0
发布2018-08-08 11:28:36
举报
文章被收录于专栏:信安之路信安之路

在实际的渗透测试中,有的时候需要自己创建一个http服务,来辅助我们的渗透测试,往往我们会遇到各种各样不同的环境,所以使用简单的方式在不同环境下创建一个HTTP服务还是非常有用的。下面我们就简单介绍下,在不同环境下使用一句话启动HTTP服务的各种姿势。

Python

对于不同的python版本有不同的方式,下面就一一介绍。

Python <= 2.3
代码语言:javascript
复制
python -c "import SimpleHTTPServer as s; s.test();" 8000
Python >= 2.4
代码语言:javascript
复制
python -m SimpleHTTPServer 8000
Python 3.x
代码语言:javascript
复制
python -m http.server 8000
Python (Twisted)

这个需要安装Twisted模块,在已经安装了Twisted模块的情况下,可以执行以下命令:

代码语言:javascript
复制
twistd -n web -p 8000 --path .

或者:

代码语言:javascript
复制
python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

如果你想用这种方式启动,而且目标没有安装这个库,可以使用一下命令安装:

代码语言:javascript
复制
pip install twisted

Ruby

下面介绍一下针对不同版本的ruby实现这个功能的方法。

Ruby 1.9.2+

在不依赖库的情况下执行以下命令:

代码语言:javascript
复制
ruby -run -e httpd . -p8000
Ruby (webrick)

这个方式需要目标环境安装了webrick这个库,需要的ruby版本< 1.9.3。

代码语言:javascript
复制
ruby -r webrick -e 'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

如何安装这个库:

代码语言:javascript
复制
gem install webrick

如何关闭这个进程:

代码语言:javascript
复制
执行ctrl+z后,使用kill -9 pid的方式干掉进程

Perl

perl中有几个库可以完成这个功能,如下:

Perl (HTTP::Server::Brick)

安装必要库:

代码语言:javascript
复制
cpan HTTP::Server::Brick

一句话启动服务:

代码语言:javascript
复制
perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'
Perl (IO::All)

安装必要库:

代码语言:javascript
复制
cpan IO::All

一句话启动服务:

代码语言:javascript
复制
perl -MIO::All -e 'io(":8080")->fork->accept->(sub { $_[0] < io(-x $1 ? "./$1 |" : $1) if /^GET \/(.*) / })'
Perl (Mojolicious)

安装必要库:

代码语言:javascript
复制
cpan Mojolicious::Lite

一句话启动服务:

代码语言:javascript
复制
perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000

PHP

php版本需要大于 5.4才能一句话实现这个功能:

代码语言:javascript
复制
php -S 127.0.0.1:8000

Erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

执行一下命令启动服务:

代码语言:javascript
复制
erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

busybox httpd

BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。

可以使用BusyBox中的httpd启动服务:

代码语言:javascript
复制
busybox httpd -f -p 8000

webfs

webfs是一个简单的http服务器,主要是静态内容。

使用以下命令启动服务:

代码语言:javascript
复制
webfsd -F -p 8000

IIS Express

在Windows环境下,可下载IIS Express,然后启动:

代码语言:javascript
复制
C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000

下载地址如下:

代码语言:javascript
复制
https://docs.microsoft.com/en-us/iis/extensions/introduction-to-iis-express/iis-express-overview
安装测试

软件下载地址:

代码语言:javascript
复制
https://download.microsoft.com/download/D/C/4/DC4EC38C-A6AA-449D-9B19-7ABC6DF72B34/iisexpress_1_11_x86_en-US.msi

安装完成后,在命令行下启动,如图:

浏览器访问一下,如图:

总结

本文大概介绍了一下,如何使用很短的命令或者代码启动一个简单的http服务,提供下载,浏览服务。我们可以利用这个功能,不管是从内网下载资料,还是利用外网服务,远程下载执行命令都是非常有用的,省的我们需要的时候安装像apache这样的服务器,方便快捷,以后在渗透测试中如何使用,大家自由发挥,我就不多说了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python
    • Python <= 2.3
      • Python >= 2.4
        • Python 3.x
          • Python (Twisted)
          • Ruby
            • Ruby 1.9.2+
              • Ruby (webrick)
              • Perl
                • Perl (HTTP::Server::Brick)
                  • Perl (IO::All)
                    • Perl (Mojolicious)
                    • PHP
                    • Erlang
                    • busybox httpd
                    • webfs
                    • IIS Express
                      • 安装测试
                      • 总结
                      相关产品与服务
                      网站渗透测试
                      网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档