├── .gitignore ├── README.md ├── SEC-rules ├── AP.sec ├── cisco.sec ├── control.sec ├── cyber2.sec ├── iss_email.sec ├── iss_scans.sec ├── iss_stats.sec ├── mcafee.sec ├── scrips.sec └── sec │ ├── 05common.conf │ ├── 15squid.conf │ ├── 17mail.conf │ ├── 25cisco.conf │ ├── 25procurve.conf │ ├── 25unix.conf │ ├── 50max6000.conf │ ├── 50rare_events.conf │ ├── 50windows2000_NTSyslog.conf │ ├── 50windows2k_snare.conf │ ├── 50windows_snare.conf │ ├── 60honeyd.conf │ ├── 70osiris.conf │ ├── 90pix.conf │ ├── 99fun_activity.conf │ └── sec.bak ├── lab ├── pcap │ ├── 7z_password.txt │ └── dumps.7z ├── proc_logs │ ├── logs_samples.7z │ ├── proc_log_configs │ │ ├── Checks4rawlogs_1st.conf │ │ ├── Checks4rawlogs_2nd.conf │ │ ├── InputOutputFileFormat-hosts_bots.conf │ │ ├── InputOutputFileFormat-w1.conf │ │ ├── InputOutputFileFormat.conf │ │ ├── Lists.conf │ │ ├── alexa_top1m.7z │ │ ├── bad_ct.txt │ │ ├── bad_urls.txt │ │ ├── bl_iplist_ip.txt │ │ ├── bl_list_domain.txt │ │ ├── bl_list_port.txt │ │ └── bl_regexp_url.txt │ └── run_commands.txt └── ryocrawler │ ├── index.html │ ├── jonahgkio.ru_8080.7z │ └── run_command.txt ├── mlogparser └── bin │ ├── LogParser.7z │ ├── mlogparser.pl │ └── process_old_windows_logs.pl ├── presentation └── HITB2013AMS_defending_enterprise_yar-kro-sol.pdf ├── proxy_analyzer ├── CHANGELOG ├── Checks4rawlogs_1st.conf ├── Checks4rawlogs_2nd.conf ├── InputOutputFileFormat-hosts_bots.conf ├── InputOutputFileFormat.conf ├── Lists.conf ├── bad_ct.txt ├── bad_urls.txt ├── bl_iplist_ip.txt ├── bl_list_domain.txt ├── bl_list_port.txt ├── bl_regexp_url.txt ├── proc_log_v07.pl └── users_in_troubles.txt ├── ryocrawler ├── README ├── crawler.py ├── deps │ ├── README │ ├── js │ │ ├── README │ │ ├── jsd │ │ │ ├── .cvsignore │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Entries.Log │ │ │ │ ├── Repository │ │ │ │ ├── Root │ │ │ │ └── Tag │ │ │ ├── Makefile.in │ │ │ ├── README │ │ │ ├── classes │ │ │ │ ├── .cvsignore │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Entries.Log │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── Makefile.in │ │ │ │ ├── makefile.win │ │ │ │ └── netscape │ │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ │ └── jsdebug │ │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ │ ├── DebugBreakHook.java │ │ │ │ │ ├── DebugController.java │ │ │ │ │ ├── Hook.java │ │ │ │ │ ├── InstructionHook.java │ │ │ │ │ ├── InterruptHook.java │ │ │ │ │ ├── InvalidInfoException.java │ │ │ │ │ ├── JSErrorReporter.java │ │ │ │ │ ├── JSPC.java │ │ │ │ │ ├── JSSourceLocation.java │ │ │ │ │ ├── JSSourceTextProvider.java │ │ │ │ │ ├── JSStackFrameInfo.java │ │ │ │ │ ├── JSThreadState.java │ │ │ │ │ ├── PC.java │ │ │ │ │ ├── Script.java │ │ │ │ │ ├── ScriptHook.java │ │ │ │ │ ├── SourceLocation.java │ │ │ │ │ ├── SourceTextItem.java │ │ │ │ │ ├── SourceTextProvider.java │ │ │ │ │ ├── StackFrameInfo.java │ │ │ │ │ └── ThreadStateBase.java │ │ │ ├── corba │ │ │ │ ├── .cvsignore │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Entries.Log │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── idl │ │ │ │ │ ├── .cvsignore │ │ │ │ │ ├── CVS │ │ │ │ │ │ ├── Entries │ │ │ │ │ │ ├── Repository │ │ │ │ │ │ ├── Root │ │ │ │ │ │ └── Tag │ │ │ │ │ └── ifaces.idl │ │ │ │ ├── ifaces_c.cpp │ │ │ │ ├── ifaces_c.hh │ │ │ │ ├── ifaces_s.cpp │ │ │ │ ├── ifaces_s.hh │ │ │ │ ├── java │ │ │ │ │ ├── .cvsignore │ │ │ │ │ └── CVS │ │ │ │ │ │ ├── Entries │ │ │ │ │ │ ├── Entries.Log │ │ │ │ │ │ ├── Repository │ │ │ │ │ │ ├── Root │ │ │ │ │ │ └── Tag │ │ │ │ ├── jsd_iiop.cpp │ │ │ │ └── src │ │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ │ ├── IDebugController.java │ │ │ │ │ ├── IExecResult.java │ │ │ │ │ ├── IJSErrorReporter.java │ │ │ │ │ ├── IJSExecutionHook.java │ │ │ │ │ ├── IJSPC.java │ │ │ │ │ ├── IJSSourceLocation.java │ │ │ │ │ ├── IJSStackFrameInfo.java │ │ │ │ │ ├── IJSThreadState.java │ │ │ │ │ ├── IScript.java │ │ │ │ │ ├── IScriptHook.java │ │ │ │ │ ├── IScriptSection.java │ │ │ │ │ ├── ISourceTextProvider.java │ │ │ │ │ ├── README │ │ │ │ │ ├── StringReciever.java │ │ │ │ │ ├── TestInterface.java │ │ │ │ │ ├── Thing.java │ │ │ │ │ ├── WAIT.COM │ │ │ │ │ ├── bogus0.java │ │ │ │ │ ├── bogus1.java │ │ │ │ │ ├── cutlines.awk │ │ │ │ │ ├── mk.bat │ │ │ │ │ └── package_header.h │ │ │ ├── idl │ │ │ │ ├── .cvsignore │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── Makefile.in │ │ │ │ └── jsdIDebuggerService.idl │ │ │ ├── java │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── jni_stubs.c │ │ │ │ ├── jniheadr.mak │ │ │ │ ├── jre │ │ │ │ │ ├── CVS │ │ │ │ │ │ ├── Entries │ │ │ │ │ │ ├── Repository │ │ │ │ │ │ ├── Root │ │ │ │ │ │ └── Tag │ │ │ │ │ ├── jre.c │ │ │ │ │ ├── jre.h │ │ │ │ │ └── win32 │ │ │ │ │ │ ├── CVS │ │ │ │ │ │ ├── Entries │ │ │ │ │ │ ├── Repository │ │ │ │ │ │ ├── Root │ │ │ │ │ │ └── Tag │ │ │ │ │ │ ├── jre_md.c │ │ │ │ │ │ └── jre_md.h │ │ │ │ ├── jsd_jntv.c │ │ │ │ ├── jsd_jvm.c │ │ │ │ ├── jsdj.h │ │ │ │ ├── jsdjava.c │ │ │ │ ├── jsdjava.h │ │ │ │ └── jsdjava.mak │ │ │ ├── javawrap │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── javawrap.mak │ │ │ │ ├── mk.bat │ │ │ │ └── nativejsengine.c │ │ │ ├── jsd.h │ │ │ ├── jsd.mak │ │ │ ├── jsd.pkg │ │ │ ├── jsd1640.def │ │ │ ├── jsd1640.rc │ │ │ ├── jsd3240.rc │ │ │ ├── jsd_atom.c │ │ │ ├── jsd_high.c │ │ │ ├── jsd_hook.c │ │ │ ├── jsd_java.c │ │ │ ├── jsd_lock.c │ │ │ ├── jsd_lock.h │ │ │ ├── jsd_obj.c │ │ │ ├── jsd_scpt.c │ │ │ ├── jsd_stak.c │ │ │ ├── jsd_step.c │ │ │ ├── jsd_text.c │ │ │ ├── jsd_val.c │ │ │ ├── jsd_xpc.cpp │ │ │ ├── jsd_xpc.h │ │ │ ├── jsdb │ │ │ │ ├── .cvsignore │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Entries.Log │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── Makefile.in │ │ │ │ ├── README │ │ │ │ ├── debugger.js │ │ │ │ ├── f.js │ │ │ │ ├── jsdb.c │ │ │ │ ├── jsdb.h │ │ │ │ ├── jsdb.mak │ │ │ │ ├── jsdbpriv.h │ │ │ │ ├── jsdrefl.c │ │ │ │ ├── mk.bat │ │ │ │ ├── objects.js │ │ │ │ └── test.js │ │ │ ├── jsdebug.c │ │ │ ├── jsdebug.h │ │ │ ├── jsdshell.mak │ │ │ ├── jsdstubs.c │ │ │ ├── mkshell.bat │ │ │ └── resource.h │ │ └── src │ │ │ ├── .cvsignore │ │ │ ├── CVS │ │ │ ├── Entries │ │ │ ├── Entries.Log │ │ │ ├── Repository │ │ │ ├── Root │ │ │ └── Tag │ │ │ ├── Linux_All_OPT.OBJ │ │ │ ├── js │ │ │ ├── js.d │ │ │ ├── js.o │ │ │ ├── jsapi.d │ │ │ ├── jsapi.o │ │ │ ├── jsarena.d │ │ │ ├── jsarena.o │ │ │ ├── jsarray.d │ │ │ ├── jsarray.o │ │ │ ├── jsatom.d │ │ │ ├── jsatom.o │ │ │ ├── jsautocfg.h │ │ │ ├── jsautokw.h │ │ │ ├── jsbool.d │ │ │ ├── jsbool.o │ │ │ ├── jscntxt.d │ │ │ ├── jscntxt.o │ │ │ ├── jscpucfg │ │ │ ├── jscpucfg.d │ │ │ ├── jscpucfg.o │ │ │ ├── jsdate.d │ │ │ ├── jsdate.o │ │ │ ├── jsdbgapi.d │ │ │ ├── jsdbgapi.o │ │ │ ├── jsdhash.d │ │ │ ├── jsdhash.o │ │ │ ├── jsdtoa.d │ │ │ ├── jsdtoa.o │ │ │ ├── jsemit.d │ │ │ ├── jsemit.o │ │ │ ├── jsexn.d │ │ │ ├── jsexn.o │ │ │ ├── jsfun.d │ │ │ ├── jsfun.o │ │ │ ├── jsgc.d │ │ │ ├── jsgc.o │ │ │ ├── jshash.d │ │ │ ├── jshash.o │ │ │ ├── jsinterp.o │ │ │ ├── jsinvoke.d │ │ │ ├── jsinvoke.o │ │ │ ├── jsiter.d │ │ │ ├── jsiter.o │ │ │ ├── jskwgen │ │ │ ├── jskwgen.d │ │ │ ├── jskwgen.o │ │ │ ├── jslock.d │ │ │ ├── jslock.o │ │ │ ├── jslog2.d │ │ │ ├── jslog2.o │ │ │ ├── jslong.d │ │ │ ├── jslong.o │ │ │ ├── jsmath.d │ │ │ ├── jsmath.o │ │ │ ├── jsnum.d │ │ │ ├── jsnum.o │ │ │ ├── jsobj.d │ │ │ ├── jsobj.o │ │ │ ├── jsopcode.d │ │ │ ├── jsopcode.o │ │ │ ├── jsparse.d │ │ │ ├── jsparse.o │ │ │ ├── jsprf.d │ │ │ ├── jsprf.o │ │ │ ├── jsregexp.d │ │ │ ├── jsregexp.o │ │ │ ├── jsscan.d │ │ │ ├── jsscan.o │ │ │ ├── jsscope.d │ │ │ ├── jsscope.o │ │ │ ├── jsscript.d │ │ │ ├── jsscript.o │ │ │ ├── jsstr.d │ │ │ ├── jsstr.o │ │ │ ├── jsutil.d │ │ │ ├── jsutil.o │ │ │ ├── jsxdrapi.d │ │ │ ├── jsxdrapi.o │ │ │ ├── jsxml.d │ │ │ ├── jsxml.o │ │ │ ├── libjs.a │ │ │ ├── libjs.so │ │ │ ├── prmjtime.d │ │ │ └── prmjtime.o │ │ │ ├── Makefile.in │ │ │ ├── Makefile.ref │ │ │ ├── README.html │ │ │ ├── SpiderMonkey.rsp │ │ │ ├── Y.js │ │ │ ├── build.mk │ │ │ ├── config.mk │ │ │ ├── config │ │ │ ├── AIX4.1.mk │ │ │ ├── AIX4.2.mk │ │ │ ├── AIX4.3.mk │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Repository │ │ │ │ ├── Root │ │ │ │ └── Tag │ │ │ ├── Darwin.mk │ │ │ ├── Darwin1.3.mk │ │ │ ├── Darwin1.4.mk │ │ │ ├── Darwin5.2.mk │ │ │ ├── Darwin5.3.mk │ │ │ ├── HP-UXB.10.10.mk │ │ │ ├── HP-UXB.10.20.mk │ │ │ ├── HP-UXB.11.00.mk │ │ │ ├── IRIX.mk │ │ │ ├── IRIX5.3.mk │ │ │ ├── IRIX6.1.mk │ │ │ ├── IRIX6.2.mk │ │ │ ├── IRIX6.3.mk │ │ │ ├── IRIX6.5.mk │ │ │ ├── Linux_All.mk │ │ │ ├── Mac_OS10.0.mk │ │ │ ├── OSF1V4.0.mk │ │ │ ├── OSF1V5.0.mk │ │ │ ├── SunOS4.1.4.mk │ │ │ ├── SunOS5.10.mk │ │ │ ├── SunOS5.3.mk │ │ │ ├── SunOS5.4.mk │ │ │ ├── SunOS5.5.1.mk │ │ │ ├── SunOS5.5.mk │ │ │ ├── SunOS5.6.mk │ │ │ ├── SunOS5.7.mk │ │ │ ├── SunOS5.8.mk │ │ │ ├── SunOS5.9.mk │ │ │ ├── WINNT4.0.mk │ │ │ ├── WINNT5.0.mk │ │ │ ├── WINNT5.1.mk │ │ │ ├── WINNT5.2.mk │ │ │ ├── WINNT6.0.mk │ │ │ └── dgux.mk │ │ │ ├── editline │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Repository │ │ │ │ ├── Root │ │ │ │ └── Tag │ │ │ ├── Linux_All_OPT.OBJ │ │ │ │ ├── editline.d │ │ │ │ ├── editline.o │ │ │ │ ├── libedit.a │ │ │ │ ├── sysunix.d │ │ │ │ └── sysunix.o │ │ │ ├── Makefile.ref │ │ │ ├── README │ │ │ ├── editline.3 │ │ │ ├── editline.c │ │ │ ├── editline.h │ │ │ ├── sysunix.c │ │ │ └── unix.h │ │ │ ├── fdlibm │ │ │ ├── .cvsignore │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Repository │ │ │ │ ├── Root │ │ │ │ └── Tag │ │ │ ├── Makefile.in │ │ │ ├── Makefile.ref │ │ │ ├── e_acos.c │ │ │ ├── e_acosh.c │ │ │ ├── e_asin.c │ │ │ ├── e_atan2.c │ │ │ ├── e_atanh.c │ │ │ ├── e_cosh.c │ │ │ ├── e_exp.c │ │ │ ├── e_fmod.c │ │ │ ├── e_gamma.c │ │ │ ├── e_gamma_r.c │ │ │ ├── e_hypot.c │ │ │ ├── e_j0.c │ │ │ ├── e_j1.c │ │ │ ├── e_jn.c │ │ │ ├── e_lgamma.c │ │ │ ├── e_lgamma_r.c │ │ │ ├── e_log.c │ │ │ ├── e_log10.c │ │ │ ├── e_pow.c │ │ │ ├── e_rem_pio2.c │ │ │ ├── e_remainder.c │ │ │ ├── e_scalb.c │ │ │ ├── e_sinh.c │ │ │ ├── e_sqrt.c │ │ │ ├── fdlibm.h │ │ │ ├── fdlibm.mak │ │ │ ├── fdlibm.mdp │ │ │ ├── k_cos.c │ │ │ ├── k_rem_pio2.c │ │ │ ├── k_sin.c │ │ │ ├── k_standard.c │ │ │ ├── k_tan.c │ │ │ ├── s_asinh.c │ │ │ ├── s_atan.c │ │ │ ├── s_cbrt.c │ │ │ ├── s_ceil.c │ │ │ ├── s_copysign.c │ │ │ ├── s_cos.c │ │ │ ├── s_erf.c │ │ │ ├── s_expm1.c │ │ │ ├── s_fabs.c │ │ │ ├── s_finite.c │ │ │ ├── s_floor.c │ │ │ ├── s_frexp.c │ │ │ ├── s_ilogb.c │ │ │ ├── s_isnan.c │ │ │ ├── s_ldexp.c │ │ │ ├── s_lib_version.c │ │ │ ├── s_log1p.c │ │ │ ├── s_logb.c │ │ │ ├── s_matherr.c │ │ │ ├── s_modf.c │ │ │ ├── s_nextafter.c │ │ │ ├── s_rint.c │ │ │ ├── s_scalbn.c │ │ │ ├── s_signgam.c │ │ │ ├── s_significand.c │ │ │ ├── s_sin.c │ │ │ ├── s_tan.c │ │ │ ├── s_tanh.c │ │ │ ├── w_acos.c │ │ │ ├── w_acosh.c │ │ │ ├── w_asin.c │ │ │ ├── w_atan2.c │ │ │ ├── w_atanh.c │ │ │ ├── w_cosh.c │ │ │ ├── w_exp.c │ │ │ ├── w_fmod.c │ │ │ ├── w_gamma.c │ │ │ ├── w_gamma_r.c │ │ │ ├── w_hypot.c │ │ │ ├── w_j0.c │ │ │ ├── w_j1.c │ │ │ ├── w_jn.c │ │ │ ├── w_lgamma.c │ │ │ ├── w_lgamma_r.c │ │ │ ├── w_log.c │ │ │ ├── w_log10.c │ │ │ ├── w_pow.c │ │ │ ├── w_remainder.c │ │ │ ├── w_scalb.c │ │ │ ├── w_sinh.c │ │ │ └── w_sqrt.c │ │ │ ├── javascript-trace.d │ │ │ ├── js.c │ │ │ ├── js.mdp │ │ │ ├── js.msg │ │ │ ├── js.pkg │ │ │ ├── js3240.rc │ │ │ ├── jsOS240.def │ │ │ ├── jsapi.c │ │ │ ├── jsapi.h │ │ │ ├── jsarena.c │ │ │ ├── jsarena.h │ │ │ ├── jsarray.c │ │ │ ├── jsarray.h │ │ │ ├── jsatom.c │ │ │ ├── jsatom.h │ │ │ ├── jsbit.h │ │ │ ├── jsbool.c │ │ │ ├── jsbool.h │ │ │ ├── jsclist.h │ │ │ ├── jscntxt.c │ │ │ ├── jscntxt.h │ │ │ ├── jscompat.h │ │ │ ├── jsconfig.h │ │ │ ├── jsconfig.mk │ │ │ ├── jscpucfg.c │ │ │ ├── jscpucfg.h │ │ │ ├── jsdate.c │ │ │ ├── jsdate.h │ │ │ ├── jsdbgapi.c │ │ │ ├── jsdbgapi.h │ │ │ ├── jsdhash.c │ │ │ ├── jsdhash.h │ │ │ ├── jsdtoa.c │ │ │ ├── jsdtoa.h │ │ │ ├── jsdtracef.c │ │ │ ├── jsdtracef.h │ │ │ ├── jsemit.c │ │ │ ├── jsemit.h │ │ │ ├── jsexn.c │ │ │ ├── jsexn.h │ │ │ ├── jsfile.c │ │ │ ├── jsfile.h │ │ │ ├── jsfile.msg │ │ │ ├── jsfun.c │ │ │ ├── jsfun.h │ │ │ ├── jsgc.c │ │ │ ├── jsgc.h │ │ │ ├── jshash.c │ │ │ ├── jshash.h │ │ │ ├── jsify.pl │ │ │ ├── jsinterp.c │ │ │ ├── jsinterp.h │ │ │ ├── jsinvoke.c │ │ │ ├── jsiter.c │ │ │ ├── jsiter.h │ │ │ ├── jskeyword.tbl │ │ │ ├── jskwgen.c │ │ │ ├── jslibmath.h │ │ │ ├── jslock.c │ │ │ ├── jslock.h │ │ │ ├── jslocko.asm │ │ │ ├── jslog2.c │ │ │ ├── jslong.c │ │ │ ├── jslong.h │ │ │ ├── jsmath.c │ │ │ ├── jsmath.h │ │ │ ├── jsnum.c │ │ │ ├── jsnum.h │ │ │ ├── jsobj.c │ │ │ ├── jsobj.h │ │ │ ├── jsopcode.c │ │ │ ├── jsopcode.h │ │ │ ├── jsopcode.tbl │ │ │ ├── jsotypes.h │ │ │ ├── jsparse.c │ │ │ ├── jsparse.h │ │ │ ├── jsprf.c │ │ │ ├── jsprf.h │ │ │ ├── jsproto.tbl │ │ │ ├── jsprvtd.h │ │ │ ├── jspubtd.h │ │ │ ├── jsregexp.c │ │ │ ├── jsregexp.h │ │ │ ├── jsreops.tbl │ │ │ ├── jsscan.c │ │ │ ├── jsscan.h │ │ │ ├── jsscope.c │ │ │ ├── jsscope.h │ │ │ ├── jsscript.c │ │ │ ├── jsscript.h │ │ │ ├── jsshell.msg │ │ │ ├── jsstddef.h │ │ │ ├── jsstr.c │ │ │ ├── jsstr.h │ │ │ ├── jstypes.h │ │ │ ├── jsutil.c │ │ │ ├── jsutil.h │ │ │ ├── jsxdrapi.c │ │ │ ├── jsxdrapi.h │ │ │ ├── jsxml.c │ │ │ ├── jsxml.h │ │ │ ├── liveconnect │ │ │ ├── .cvsignore │ │ │ ├── CVS │ │ │ │ ├── Entries │ │ │ │ ├── Entries.Log │ │ │ │ ├── Repository │ │ │ │ ├── Root │ │ │ │ └── Tag │ │ │ ├── LiveConnect.dsp │ │ │ ├── LiveConnectShell.dsp │ │ │ ├── LiveConnectShell.dsw │ │ │ ├── Makefile.in │ │ │ ├── Makefile.ref │ │ │ ├── README.html │ │ │ ├── _jni │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── netscape_javascript_JSException.h │ │ │ │ └── netscape_javascript_JSObject.h │ │ │ ├── classes │ │ │ │ ├── .cvsignore │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Entries.Log │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── Makefile.in │ │ │ │ ├── Makefile.ref │ │ │ │ └── netscape │ │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ │ ├── Makefile.ref │ │ │ │ │ └── javascript │ │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ │ ├── JSException.java │ │ │ │ │ ├── JSObject.java │ │ │ │ │ ├── JSProxy.java │ │ │ │ │ ├── JSRunnable.java │ │ │ │ │ ├── JSUtil.java │ │ │ │ │ └── Makefile.ref │ │ │ ├── config │ │ │ │ ├── AIX4.1.mk │ │ │ │ ├── AIX4.2.mk │ │ │ │ ├── AIX4.3.mk │ │ │ │ ├── CVS │ │ │ │ │ ├── Entries │ │ │ │ │ ├── Repository │ │ │ │ │ ├── Root │ │ │ │ │ └── Tag │ │ │ │ ├── HP-UXB.10.10.mk │ │ │ │ ├── HP-UXB.10.20.mk │ │ │ │ ├── HP-UXB.11.00.mk │ │ │ │ ├── IRIX6.2.mk │ │ │ │ ├── IRIX6.3.mk │ │ │ │ ├── IRIX6.5.mk │ │ │ │ ├── Linux_All.mk │ │ │ │ ├── OSF1V4.0.mk │ │ │ │ ├── OSF1V5.0.mk │ │ │ │ ├── SunOS5.5.1.mk │ │ │ │ ├── SunOS5.6.mk │ │ │ │ ├── SunOS5.7.mk │ │ │ │ ├── SunOS5.8.mk │ │ │ │ └── WINNT4.0.mk │ │ │ ├── jsj.c │ │ │ ├── jsj.msg │ │ │ ├── jsj_JSObject.c │ │ │ ├── jsj_JavaArray.c │ │ │ ├── jsj_JavaClass.c │ │ │ ├── jsj_JavaMember.c │ │ │ ├── jsj_JavaObject.c │ │ │ ├── jsj_JavaPackage.c │ │ │ ├── jsj_array.c │ │ │ ├── jsj_class.c │ │ │ ├── jsj_convert.c │ │ │ ├── jsj_field.c │ │ │ ├── jsj_hash.c │ │ │ ├── jsj_hash.h │ │ │ ├── jsj_method.c │ │ │ ├── jsj_nodl.c │ │ │ ├── jsj_private.h │ │ │ ├── jsj_simpleapi.c │ │ │ ├── jsj_utils.c │ │ │ ├── jsjava.h │ │ │ ├── liveconnect.pkg │ │ │ ├── netscape_javascript_JSObject.h │ │ │ ├── nsCLiveconnect.cpp │ │ │ ├── nsCLiveconnect.h │ │ │ ├── nsCLiveconnectFactory.cpp │ │ │ ├── nsCLiveconnectFactory.h │ │ │ ├── nsILiveconnect.h │ │ │ ├── nsISecureLiveconnect.h │ │ │ └── nsISecurityContext.h │ │ │ ├── lock_SunOS.s │ │ │ ├── perfect.js │ │ │ ├── plify_jsdhash.sed │ │ │ ├── prmjtime.c │ │ │ ├── prmjtime.h │ │ │ ├── resource.h │ │ │ ├── rules.mk │ │ │ └── win32.order │ └── jsunpack │ │ ├── .svn │ │ ├── all-wcprops │ │ ├── entries │ │ ├── prop-base │ │ │ ├── detection.py.svn-base │ │ │ ├── exampleImport.py.svn-base │ │ │ ├── html.py.svn-base │ │ │ ├── jsunpackn.py.svn-base │ │ │ ├── pdf.py.svn-base │ │ │ ├── samples.tgz.svn-base │ │ │ └── swf.py.svn-base │ │ └── text-base │ │ │ ├── CHANGELOG.svn-base │ │ │ ├── COPYING.svn-base │ │ │ ├── INSTALL.spidermonkey.shellcode.svn-base │ │ │ ├── INSTALL.spidermonkey.svn-base │ │ │ ├── INSTALL.svn-base │ │ │ ├── Makefile.svn-base │ │ │ ├── debug.py.svn-base │ │ │ ├── detection.py.svn-base │ │ │ ├── exampleImport.py.svn-base │ │ │ ├── gzip.py.svn-base │ │ │ ├── html.py.svn-base │ │ │ ├── htmlparse.config.svn-base │ │ │ ├── jsunpackn.py.svn-base │ │ │ ├── lzw.py.svn-base │ │ │ ├── options.config.svn-base │ │ │ ├── pdf.py.svn-base │ │ │ ├── post.js.svn-base │ │ │ ├── pre.js.svn-base │ │ │ ├── rules.ascii.svn-base │ │ │ ├── rules.svn-base │ │ │ ├── samples.tgz.svn-base │ │ │ ├── swf.py.svn-base │ │ │ └── urlattr.py.svn-base │ │ ├── CHANGELOG │ │ ├── COPYING │ │ ├── INSTALL │ │ ├── INSTALL.spidermonkey │ │ ├── INSTALL.spidermonkey.shellcode │ │ ├── __init__.py │ │ ├── __init__.pyc │ │ ├── build │ │ ├── pip-delete-this-directory.txt │ │ └── yapgvb │ │ │ ├── HEADER │ │ │ ├── Jamfile │ │ │ ├── Jamrules │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── README_DEVS │ │ │ ├── RELEASE_NOTES │ │ │ ├── __init__.py │ │ │ ├── _yapgvb.cpp │ │ │ ├── _yapgvb.hpp │ │ │ ├── _yapgvb_py.py │ │ │ ├── attrs.html │ │ │ ├── boost-build.jam │ │ │ ├── build │ │ │ └── lib.linux-x86_64-2.7 │ │ │ │ └── yapgvb │ │ │ │ ├── __init__.py │ │ │ │ ├── _yapgvb_py.py │ │ │ │ ├── config.py │ │ │ │ ├── config_generic.py │ │ │ │ ├── config_linux2.py │ │ │ │ ├── config_win32.py │ │ │ │ ├── examples │ │ │ │ ├── __init__.py │ │ │ │ ├── clique.py │ │ │ │ ├── graph_directory.py │ │ │ │ ├── minimum_spanning_tree.py │ │ │ │ ├── random_graph.py │ │ │ │ └── yapgvb_logo.py │ │ │ │ ├── gendocs.py │ │ │ │ ├── graph_attribute_types.py │ │ │ │ ├── graph_attributes.py │ │ │ │ ├── mneumonics.py │ │ │ │ └── setup.py │ │ │ ├── build_win.bat │ │ │ ├── config.py │ │ │ ├── config.pyc │ │ │ ├── config_generic.py │ │ │ ├── config_linux2.py │ │ │ ├── config_linux2.pyc │ │ │ ├── config_win32.py │ │ │ ├── doc │ │ │ ├── epydoc.css │ │ │ ├── index.html │ │ │ ├── private │ │ │ │ ├── epydoc.css │ │ │ │ ├── frames.html │ │ │ │ ├── help.html │ │ │ │ ├── index.html │ │ │ │ ├── indices.html │ │ │ │ ├── toc-everything.html │ │ │ │ ├── toc-yapgvb-module.html │ │ │ │ ├── toc.html │ │ │ │ ├── trees.html │ │ │ │ ├── yapgvb-module.html │ │ │ │ ├── yapgvb.Digraph-class.html │ │ │ │ ├── yapgvb.Edge-class.html │ │ │ │ ├── yapgvb.Graph-class.html │ │ │ │ ├── yapgvb.GraphBase-class.html │ │ │ │ └── yapgvb.Node-class.html │ │ │ └── public │ │ │ │ ├── epydoc.css │ │ │ │ ├── frames.html │ │ │ │ ├── help.html │ │ │ │ ├── index.html │ │ │ │ ├── indices.html │ │ │ │ ├── toc-everything.html │ │ │ │ ├── toc-yapgvb-module.html │ │ │ │ ├── toc.html │ │ │ │ ├── trees.html │ │ │ │ ├── yapgvb-module.html │ │ │ │ ├── yapgvb.Digraph-class.html │ │ │ │ ├── yapgvb.Edge-class.html │ │ │ │ ├── yapgvb.Graph-class.html │ │ │ │ ├── yapgvb.GraphBase-class.html │ │ │ │ └── yapgvb.Node-class.html │ │ │ ├── examples │ │ │ ├── __init__.py │ │ │ ├── clique.py │ │ │ ├── graph_directory.py │ │ │ ├── minimum_spanning_tree.py │ │ │ ├── random_graph.py │ │ │ └── yapgvb_logo.py │ │ │ ├── gendocs.py │ │ │ ├── graph_attribute_types.py │ │ │ ├── graph_attributes.py │ │ │ ├── mneumonics.py │ │ │ ├── pip-egg-info │ │ │ └── yapgvb.egg-info │ │ │ │ ├── PKG-INFO │ │ │ │ ├── SOURCES.txt │ │ │ │ ├── dependency_links.txt │ │ │ │ └── top_level.txt │ │ │ ├── setup.py │ │ │ └── yapgvb_logo.jpg │ │ ├── debug.py │ │ ├── depends │ │ ├── .svn │ │ │ ├── all-wcprops │ │ │ ├── entries │ │ │ ├── prop-base │ │ │ │ ├── BeautifulSoup-3.2.0.tar.gz.svn-base │ │ │ │ ├── js-1.8.0-rc1-src.tar.gz.svn-base │ │ │ │ ├── pycrypto-2.4.1.tar.gz.svn-base │ │ │ │ ├── pynids-0.6.1.tar.gz.svn-base │ │ │ │ ├── yara-1.6.tar.gz.svn-base │ │ │ │ └── yara-python-1.6.tar.gz.svn-base │ │ │ └── text-base │ │ │ │ ├── BeautifulSoup-3.2.0.tar.gz.svn-base │ │ │ │ ├── README.svn-base │ │ │ │ ├── js-1.8.0-rc1-src.tar.gz.svn-base │ │ │ │ ├── pycrypto-2.4.1.tar.gz.svn-base │ │ │ │ ├── pynids-0.6.1.tar.gz.svn-base │ │ │ │ ├── sha1sum.svn-base │ │ │ │ ├── yara-1.6.tar.gz.svn-base │ │ │ │ └── yara-python-1.6.tar.gz.svn-base │ │ ├── BeautifulSoup-3.2.0.tar.gz │ │ ├── README │ │ ├── js-1.8.0-rc1-src.tar.gz │ │ ├── pycrypto-2.4.1.tar.gz │ │ ├── pynids-0.6.1.tar.gz │ │ ├── pynids-0.6.1 │ │ │ ├── CHANGES │ │ │ ├── COPYING │ │ │ ├── Example │ │ │ ├── README │ │ │ ├── build │ │ │ │ ├── lib.linux-x86_64-2.7 │ │ │ │ │ └── nidsmodule.so │ │ │ │ └── temp.linux-x86_64-2.7 │ │ │ │ │ └── nidsmodule.o │ │ │ ├── libnids-1.24.tar.gz │ │ │ ├── libnids-1.24 │ │ │ │ ├── CHANGES │ │ │ │ ├── COPYING │ │ │ │ ├── CREDITS │ │ │ │ ├── MISC │ │ │ │ ├── Makefile.in │ │ │ │ ├── README │ │ │ │ ├── aclocal.m4 │ │ │ │ ├── config.guess │ │ │ │ ├── config.log │ │ │ │ ├── config.status │ │ │ │ ├── config.sub │ │ │ │ ├── configure │ │ │ │ ├── configure.in │ │ │ │ ├── doc │ │ │ │ │ ├── API.html │ │ │ │ │ ├── API.txt │ │ │ │ │ ├── LINUX │ │ │ │ │ ├── NEW_LIBPCAP │ │ │ │ │ ├── PATCH │ │ │ │ │ ├── PERFORMANCE │ │ │ │ │ ├── TESTS │ │ │ │ │ └── bugtraq_post │ │ │ │ ├── install-sh │ │ │ │ ├── mkinstalldirs │ │ │ │ ├── samples │ │ │ │ │ ├── Makefile.in │ │ │ │ │ ├── chksum_ctl.c │ │ │ │ │ ├── nids_next.c │ │ │ │ │ ├── overflows.c │ │ │ │ │ ├── printall.c │ │ │ │ │ └── sniff.c │ │ │ │ └── src │ │ │ │ │ ├── Makefile.in │ │ │ │ │ ├── allpromisc.c │ │ │ │ │ ├── allpromisc.o │ │ │ │ │ ├── checksum.c │ │ │ │ │ ├── checksum.h │ │ │ │ │ ├── checksum.o │ │ │ │ │ ├── config.h │ │ │ │ │ ├── config.h.in │ │ │ │ │ ├── hash.c │ │ │ │ │ ├── hash.h │ │ │ │ │ ├── hash.o │ │ │ │ │ ├── ip_fragment.c │ │ │ │ │ ├── ip_fragment.h │ │ │ │ │ ├── ip_fragment.o │ │ │ │ │ ├── ip_options.c │ │ │ │ │ ├── ip_options.o │ │ │ │ │ ├── killtcp.c │ │ │ │ │ ├── killtcp.o │ │ │ │ │ ├── libnids-track-established.patch │ │ │ │ │ ├── libnids.3 │ │ │ │ │ ├── libnids.3.mdoc │ │ │ │ │ ├── libnids.a │ │ │ │ │ ├── libnids.c │ │ │ │ │ ├── libnids.o │ │ │ │ │ ├── nids.h │ │ │ │ │ ├── scan.c │ │ │ │ │ ├── scan.h │ │ │ │ │ ├── scan.o │ │ │ │ │ ├── tcp.c │ │ │ │ │ ├── tcp.h │ │ │ │ │ ├── tcp.o │ │ │ │ │ ├── util.c │ │ │ │ │ ├── util.h │ │ │ │ │ └── util.o │ │ │ ├── nidsmodule.c │ │ │ └── setup.py │ │ ├── sha1sum │ │ ├── yara-1.6.tar.gz │ │ └── yara-python-1.6.tar.gz │ │ ├── detection.py │ │ ├── detection.pyc │ │ ├── exampleImport.py │ │ ├── gzip.py │ │ ├── gzip.pyc │ │ ├── html.py │ │ ├── html.pyc │ │ ├── htmlparse.config │ │ ├── jsunpackn.py │ │ ├── jsunpackn.pyc │ │ ├── lzw.py │ │ ├── lzw.pyc │ │ ├── options.config │ │ ├── pdf.py │ │ ├── pdf.pyc │ │ ├── post.js │ │ ├── pre.js │ │ ├── rules │ │ ├── rules.ascii │ │ ├── samples.tgz │ │ ├── swf.py │ │ ├── swf.pyc │ │ ├── tools │ │ ├── .svn │ │ │ ├── all-wcprops │ │ │ ├── entries │ │ │ └── text-base │ │ │ │ └── getCurrentProxies.pl.svn-base │ │ └── getCurrentProxies.pl │ │ ├── urlattr.py │ │ └── urlattr.pyc ├── post.js ├── pre.js ├── wascanner.py └── yara │ └── web.yar └── update_macs ├── Switches.conf ├── TNK ├── AcademUtils.pm ├── ArrayAcademUtils.pm ├── CGIx.pm ├── DBAccess.pm ├── Defs.pm ├── FileUtils.pm ├── LDAPUtils.pm ├── PreShell.pm ├── Resource.pm ├── Router │ └── CryptoIpsecSa.pm ├── SAP │ ├── Resource.pm │ ├── SAPProject.pm │ ├── SAPRequest.pm │ ├── SAPRole.pm │ ├── SAPUser.pm │ └── SAPUtils.pm ├── Server.pm ├── Switch │ └── Switch.pm ├── TNK.bak ├── UserAccess.pm └── Utils.pm ├── etc ├── connect │ ├── ad_svs │ ├── auto │ ├── external_svs │ ├── mngmt │ ├── saplogDB │ ├── security_helpdesk │ ├── security_svs │ ├── u_inc_security │ └── wslogdb_wslogger ├── etc.bak └── freetds │ └── freetds.conf ├── update_macs.pl └── www ├── find_switch.cgi ├── frames.cgi ├── index.htm ├── logons.cgi ├── logons2.cgi └── www.bak /.gitignore: -------------------------------------------------------------------------------- 1 | blib/ 2 | .build/ 3 | _build/ 4 | cover_db/ 5 | inc/ 6 | Build 7 | !Build/ 8 | Build.bat 9 | .last_cover_stats 10 | Makefile 11 | Makefile.old 12 | MANIFEST.bak 13 | META.yml 14 | MYMETA.yml 15 | nytprof.out 16 | pm_to_blib 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ndf 2 | === 3 | 4 | Network Defender Toolkit - a set of network tools for Enterprise Defense. 5 | 6 | Documentation 7 | ------------- 8 | Please see our presentation at HITBAMS2013. 9 | Also available in ./presentation/ 10 | 11 | Requirements 12 | ------------ 13 | * python 14 | * perl 15 | 16 | specific requirements are outlined in documentation for each particular tool. 17 | 18 | 19 | Overview of the tools 20 | --------------------- 21 | 22 | * proxy analyzer - proxy logs tool analyzer designed to identify potential malicious activities (drive by download attacks, botnet c2 communication and so on) within 23 | enterprise proxy ogs 24 | 25 | * dns tools - a set of tools for dns traffic analysis 26 | 27 | * anomalizer - anomaly detection mechanics 28 | 29 | * ryocrawler - proactive "Roll Your Own" network crawler. built to identify potential Drive by Download attack points. (utilizes jsunpack and Yara for rapid content analysis) 30 | 31 | * SEC-rules - a set of SEC.pl rules for different purposes 32 | 33 | * update_macs - set of tools for matching user IDs and trace location changes 34 | 35 | * mlogparser - wrapper for MS' logparser to store windows logs in DB 36 | 37 | 38 | Authors 39 | ------------------- 40 | * Vladimir Kropotov 41 | * Segey Soldatov 42 | * Fyodor Yarochkin 43 | -------------------------------------------------------------------------------- /SEC-rules/control.sec: -------------------------------------------------------------------------------- 1 | ######################## 2 | # Control log usage # 3 | # svsoldatov, 11.07.05 # 4 | ######################## 5 | 6 | # 7 | # check that logs come... 8 | # 9 | ##Any row from /var/log/unixes/TACACS/messages 10 | type=Single 11 | continue=TakeNext 12 | ptype=RegExp 13 | pattern=^\w{3}\s+\d{1,2}\s+\d{2}:\d{2}:\d{2}\s+(\S+)\s+TACACS 14 | context=TACLOG2 15 | desc=Logs from $1 16 | action=create LOGS_$1 86400 ( \ 17 | eval %o (\ 18 | my $ret = localtime()."\n1. On mngmt-2, mngmt-3 /home/svs/sbin/sec.pl with /home/svs/sbin/syslog-client.sec is working under /var/log/tac_plus.log\n2. Meaasges are comming to syslog and put to /var/log/unixes/TACACS/messages\n"; \ 19 | return $ret; \ 20 | );\ 21 | fill LOGS_$1 %o; \ 22 | report LOGS_$1 /usr/bin/mail -s 'SEC: No TAC logs from $1' svsoldatov@yourdomaoin.ru \ 23 | ) 24 | 25 | ######### 26 | 27 | -------------------------------------------------------------------------------- /SEC-rules/iss_email.sec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/SEC-rules/iss_email.sec -------------------------------------------------------------------------------- /SEC-rules/sec/05common.conf: -------------------------------------------------------------------------------- 1 | type=Calendar 2 | time=0 8 * * * 3 | desc=WORK_TIME 4 | action = create %s 36000 5 | 6 | type=Calendar 7 | time=0 0 * * 6 8 | desc=WEEKEND 9 | action = create %s 172800 10 | -------------------------------------------------------------------------------- /SEC-rules/sec/25procurve.conf: -------------------------------------------------------------------------------- 1 | type=Single 2 | ptype=RegExp 3 | continue=dontcont 4 | pattern=.*SME (\S+) from (\S+) -.* 5 | desc=radmin connects 6 | action=shellcmd /bin/echo "$0" | mail -s "[security warning] $1 login to procurve" soc@yourdomaoin -------------------------------------------------------------------------------- /SEC-rules/sec/25unix.conf: -------------------------------------------------------------------------------- 1 | #=============================================================== 2 | # Autentification failing 3 | #=============================================================== 4 | # su 5 | #--------------------------------------------------------------- 6 | type=Single 7 | continue=TakeNext 8 | ptype=RegExp 9 | pattern=\[(\d+)\]: authentication fail 10 | desc=su pid $1 11 | action=create su_$1 12 | 13 | type=Single 14 | continue=TakeNext 15 | ptype=RegExp 16 | pattern=\[(\d+)\]: 17 | context=su_$1 18 | desc=events for su pid $1 19 | action=add su_$1 $0; set su_$1 10 (report su_$1 /usr/bin/mail -s "[security alert] Authentification failure" soc@yourdomaoin) 20 | 21 | type=Single 22 | ptype=RegExp 23 | pattern=su.*\[(\d+)\]: authentication failure; logname 24 | desc=su closed 25 | action=report su_$1 /usr/bin/mail -s "[security alert] Authentification failure" soc@yourdomaoin 26 | 27 | type=Single 28 | ptype=RegExp 29 | pattern=\[(\d+)\]: su: Authentication failed 30 | desc=su closed 31 | action=report su_$1 /usr/bin/mail -s "[security alert] Authentification failure" soc@yourdomaoin 32 | 33 | -------------------------------------------------------------------------------- /SEC-rules/sec/50max6000.conf: -------------------------------------------------------------------------------- 1 | #=============================================================== 2 | # Max6000 3 | #=============================================================== 4 | # Snmp access 5 | #--------------------------------------------------------------- 6 | type=Single 7 | ptype=RegExp 8 | pattern=SNMP illegal access 9 | desc=$0 10 | action=shellcmd /bin/echo "%s" | /usr/bin/mail -s "[security warning] Illegal snmp access to MAX6000" soc@yourdomaoin 11 | 12 | #--------------------------------------------------------------- 13 | # Access error 14 | #--------------------------------------------------------------- 15 | type=Single 16 | continue=TakeNext 17 | ptype=RegExp 18 | pattern=security error, \S+ \[MBID (\d+).* 19 | desc=illegal access to max - mbid $1 20 | action=create illegal_access_2_max_$1; add illegal_access_2_max_$1 $0 21 | 22 | type=Single 23 | continue=TakeNext 24 | ptype=RegExp 25 | pattern=\" \d\d\d\d->7002.*\[MBID (\d+)\] 26 | context=illegal_access_2_max_$1 27 | desc=call from local phone 28 | action=delete illegal_access_2_max_$1 29 | 30 | type=Single 31 | continue=TakeNext 32 | ptype=RegExp 33 | pattern=\[MBID (\d+)\] 34 | context=illegal_access_2_max_$1 35 | desc=events illegal access to max - mbid $1 36 | action=add illegal_access_2_max_$1 $0; set illegal_access_2_max_$1 30 \ 37 | (report illegal_access_2_max_$1 /usr/bin/mail -s "[security alert] DialUp access error" soc@yourdomaoin; delete illegal_access_2_max_$1) 38 | 39 | type=Single 40 | ptype=RegExp 41 | pattern=Call Terminated \[MBID (\d+).* 42 | context=illegal_access_2_max_$1 43 | desc=end of illegal access to max - mbid $1 44 | action=add illegal_access_2_max_$1 $0; report illegal_access_2_max_$1 /usr/bin/mail -s "[security alert] DialUp access error" soc@yourdomaoin; \ 45 | delete illegal_access_2_max_$1 46 | 47 | -------------------------------------------------------------------------------- /SEC-rules/sec/50rare_events.conf: -------------------------------------------------------------------------------- 1 | #======================================================================================================================================================================= 2 | # Windows 3 | #======================================================================================================================================================================= 4 | #--------------------------------------------------------------- 5 | # rare event 6 | #--------------------------------------------------------------- 7 | 8 | type=Single 9 | ptype=RegExp 10 | pattern=SEC_STARTUP 11 | desc=SEC startup 12 | context=create SEC_STARTUP_TIMOUT 86400 13 | 14 | type=Single 15 | ptype=RegExp 16 | continue=takenext 17 | pattern=\S+\s+\S+\s+\S+\s+\S+\s+(\d+)\s(\S+)\s+(\S+).* 18 | context=!$1_$2_$3 && !SEC_STARTUP_TIMEOUT 19 | desc=Get new event 20 | action=create $1_$2_$3; shellcmd /bin/echo "$0" | /usr/bin/mail -s "[security alert] New event registered" security_administrator@domain.ru 21 | 22 | type=Single 23 | ptype=RegExp 24 | continue=takenext 25 | pattern=\S+\s+\S+\s+\S+\s+\S+\s+(\d+)\s(\S+)\s+(\S+).* 26 | context=!$1_$2_$3 && SEC_STARTUP_TIMEOUT 27 | desc=Get new event in learning period 28 | action=create $1_$2_$3 29 | 30 | -------------------------------------------------------------------------------- /SEC-rules/sec/50windows2000_NTSyslog.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/SEC-rules/sec/50windows2000_NTSyslog.conf -------------------------------------------------------------------------------- /SEC-rules/sec/50windows2k_snare.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/SEC-rules/sec/50windows2k_snare.conf -------------------------------------------------------------------------------- /SEC-rules/sec/50windows_snare.conf: -------------------------------------------------------------------------------- 1 | #======================================================================================================================================================================= 2 | # Windows 3 | #======================================================================================================================================================================= 4 | #--------------------------------------------------------------- 5 | # Service created 7035 6 | #--------------------------------------------------------------- 7 | type=Single 8 | ptype=RegExp 9 | continue=takenext 10 | pattern=\S+\s+\S+\s+\S+\s+\S+.*7035.*Service Control Manager\s+^(SYSTEM).* 11 | desc=Serivce was sent a start control 12 | action=shellcmd /bin/echo "$0" | /usr/bin/mail -s "[security alert] Suspicious service was started" security_administrator@domain.ru 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /SEC-rules/sec/60honeyd.conf: -------------------------------------------------------------------------------- 1 | #=============================================================== 2 | # HONEYD 3 | #=============================================================== 4 | 5 | 6 | type=SingleWithThreshold 7 | ptype=RegExp 8 | pattern=.*honeyd.* 9 | desc=honeyd alerts 10 | action=shellcmd /bin/echo "$0" | /usr/bin/mail -s "look at honeyd logs" soc@yourdomaoin 11 | window=600 12 | thresh=5 13 | -------------------------------------------------------------------------------- /SEC-rules/sec/70osiris.conf: -------------------------------------------------------------------------------- 1 | #=============================================================== 2 | # Osiris 3 | #=============================================================== 4 | # create context 5 | # fill it 6 | # some time mail content of context to sa 7 | 8 | 9 | type=SingleWithThreshold 10 | ptype=RegExp 11 | pattern=.*osirismd\[[0-9]\]: \[[0-9]\]\[(.*)\]\[cmp\]\[(.*)\]\[(.*)\]\[(.*)\] 12 | desc=osiris alerts 13 | action=shellcmd /bin/echo "$0" | /usr/bin/mail -s "look at honeyd logs" soc@yourdomaoin 14 | window=600 15 | thresh=5 16 | -------------------------------------------------------------------------------- /SEC-rules/sec/99fun_activity.conf: -------------------------------------------------------------------------------- 1 | type=Single 2 | desc=Module load and setup 3 | ptype=SubStr 4 | pattern=SEC_STARTUP 5 | context=[SEC_INTERNAL_EVENT] 6 | action=assign %a 0; \ 7 | assign %b 0; \ 8 | eval %a ( $MinuteSize = 0; $MinuteConnections = 0; $MinuteHosts = 0; ); \ 9 | 10 | #write - =========================================================== 11 | 12 | 13 | type=Calendar 14 | time=* * * * * 15 | desc=$0 16 | action=shellcmd /home/sa/bin/monitors/activity_mon.pl %a %b; \ 17 | eval %d ($MinuteSize=0; $MinuteConnections = 0; $MinuteHosts=0); 18 | 19 | #$MinuteSize $MinuteConnections $MinuteHosts;\ 20 | 21 | #Generate internal event for furner analize 22 | type=Single 23 | ptype=RegExp 24 | pattern=^\S+\s+\S+\s+\S+\s+\S+\s+squid\S+\s+\S+\s+\S+\s+(\d+\.\d+\.\d+.\d+)\s+\S+\s+(\d+).*DIRECT.* 25 | desc=$0 26 | action=event EventSquid $1 $2 27 | # ^ ^_size 28 | # |_source 29 | #\S+\s+\S+\s+\S+\s+(\d+\.\d+\.\d+.\d+)\s+\S+\s+(\d+).*DIRECT.* 30 | 31 | 32 | type=Single 33 | ptype=RegExp 34 | continue=takenext 35 | pattern=EventSquid (\S+) (\d+) 36 | desc=$0 37 | action=eval %a ( $MinuteSize = $MinuteSize + $2; ); eval %b ( $MinuteConnections = $MinuteConnections + 1; ) 38 | 39 | 40 | #type=Single 41 | #ptype=RegExp 42 | #pattern=EventSquid (\S+) \d+ 43 | #desc=$0 44 | #context=!MINUTE_HOSTS_$1 45 | #action=create MINUTE_HOSTS_$1 60; eval %c ( $MinuteHosts = $MinuteHosts + 1; ) 46 | -------------------------------------------------------------------------------- /SEC-rules/sec/sec.bak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/SEC-rules/sec/sec.bak -------------------------------------------------------------------------------- /lab/pcap/7z_password.txt: -------------------------------------------------------------------------------- 1 | infected -------------------------------------------------------------------------------- /lab/pcap/dumps.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/lab/pcap/dumps.7z -------------------------------------------------------------------------------- /lab/proc_logs/logs_samples.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/lab/proc_logs/logs_samples.7z -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/Checks4rawlogs_2nd.conf: -------------------------------------------------------------------------------- 1 | # 2 | # This is checks config for logs processor. It must be correct Perl script as executed with do(). 3 | # For each field in output here defined an array for checks. Each check is specified with hash 4 | # which contains the following keys: 5 | # DATA_FILE - file with list of matched tockens. If DATA_FILE is undefined (the same as '' or "") 6 | # the whole check hash does not work. So if you need to switch check off just comment DATA_FILE 7 | # key. 8 | # FUNC - how to perform matching 9 | # - Now the following functions are implemented: 10 | # -- MatchSearch - regexp search with immediate output of matched line. 11 | # In this case DATA_FILE content must have the following structure: 12 | # ## 13 | # where 14 | # --- `regexp to match' is PCRE regular expression 15 | # --- `output file' file name with path where to write result. 16 | # DATA_FILE can contain comments starting with `#' 17 | # 18 | # Possible keys of %ParserCfg::Checks (see InputOutputFileFormat.conf): 19 | # USER_LOGIN USER_IP USER_AGENT LOCAL_TIME REFERRER DOMAIN SITE_IP PORT BYTESOUT BYTESIN PROTOCOL 20 | # TRANSPORT METHOD URL CONTENTTYPE HTTP_CODE ACTION GMT_TIME 21 | # 22 | # This file is mandatory, but specified with --list paramenter for each run. No defaults specified. 23 | # 24 | 25 | %ParserCfg::Checks = ( #Keys must match Output fields in %ParserCfg::Proclog 26 | URL => [ 27 | { 28 | DATA_FILE => "bad_urls.txt", 29 | FUNC => "MatchSearch", 30 | }, 31 | ], 32 | CONTENTTYPE => [ 33 | { 34 | DATA_FILE => "bad_ct.txt", 35 | FUNC => "MatchSearch", 36 | }, 37 | ], 38 | ); 39 | -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/Lists.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Lists threasholds and output files 3 | # Just comment OutFile if you don't want to write output 4 | # Empty files will not be created 5 | # 6 | # This is mandatory file 7 | # 8 | %ParserCfg::Lists = ( 9 | #ExpWhiteList 10 | ExpWhiteList => { 11 | OutFile => "o/_parsed_explicitwhitelisted_TIME_PID.txt", 12 | Thr => 300, # everything bigger became explicit white 13 | }, 14 | #WhiteList 15 | WhiteList => { 16 | OutFile => "o/_parsed_whitelisted_TIME_PID.txt", 17 | Thr => 1, # everything bigger became white 18 | }, 19 | #GrayList 20 | GrayList => { 21 | OutFile => "o/_parsed_graylisted_TIME_PID.txt", 22 | }, 23 | #BlackList 24 | BlackList => { 25 | OutFile => "o/_parsed_blacklisted_TIME_PID.txt", 26 | Thr => -1, # everything bigger became black 27 | }, 28 | #ExpBlackList 29 | ExpBlackList => { 30 | OutFile => "o/_parsed_explicitblacklisted_TIME_PID.txt", 31 | Thr => -300, # everything bigger became explicit black 32 | }, 33 | ); 34 | 35 | -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/alexa_top1m.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/lab/proc_logs/proc_log_configs/alexa_top1m.7z -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bad_ct.txt: -------------------------------------------------------------------------------- 1 | \/octed\-stream##u/octed-stream.txt 2 | -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bad_urls.txt: -------------------------------------------------------------------------------- 1 | \/[0-9a-fA-F]{32}\/q\.php\?##u/hex_q_php.txt 2 | \d[a-z]:\d[a-z]:\d[a-z]:\d[a-z]##u/bh2.txt 3 | 7GIC|2T4T##u/7GIC_2T4T.txt 4 | search\?hl=[a-z]{2}\&source=[a-z]{2}\&q=\d+\&##u/fileless.txt -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bl_iplist_ip.txt: -------------------------------------------------------------------------------- 1 | 129.121.0.0/16 2 | 65.75.144.0/24 3 | 108.165.25.0/24 -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bl_list_domain.txt: -------------------------------------------------------------------------------- 1 | ddns.name 2 | -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bl_list_port.txt: -------------------------------------------------------------------------------- 1 | 92 2 | -------------------------------------------------------------------------------- /lab/proc_logs/proc_log_configs/bl_regexp_url.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fygrave/ndf/8abdad1f52e386293df75bfe580f749196c8d568/lab/proc_logs/proc_log_configs/bl_regexp_url.txt -------------------------------------------------------------------------------- /lab/proc_logs/run_commands.txt: -------------------------------------------------------------------------------- 1 | In this directory there are just commands. You can take proc_log_v07.pl 'proxy_analyzer' directory. 2 | 3 | 4 | cat 20130202_w1000_1.csv | ./proc_log_v07.pl --io=InputOutputFileFormat-w1.conf --list=Checks4rawlogs_1st.conf 5 | cat logs_aug_mar_2013_bots.csv | ./proc_log_v07.pl --io=InputOutputFileFormat-hosts_bots.conf --match=Checks4rawlogs_2nd.conf 6 | cat logs_aug_mar_2013_hosts.csv | ./proc_log_v07.pl --io=InputOutputFileFormat-hosts_bots.conf --match=Checks4rawlogs_2nd.conf 7 | -------------------------------------------------------------------------------- /lab/ryocrawler/index.html: -------------------------------------------------------------------------------- 1 |

It works!

2 |