function fred_report_info() { var info={report_cat : "SYSTEM", report_name : "USB storage devices", report_author : "Gillen Daniel, Voncken Guy", report_desc : "Dump USB storage devices", fred_api : 2, hive : "SYSTEM" }; return info; } var table_style = "border-collapse:collapse; margin-left:20px; font-family:arial; font-size:12"; var cell_style = "border:1px solid #888888; padding:5; white-space:nowrap;"; function IsValid(val) { return (typeof val!=='undefined'); } function PrintTableHeaderCell(str) { println(" ",str,""); } function PrintTableDataCell(alignment,str) { var style=cell_style+" text-align:"+alignment+";"; println(" ",str,""); } function PrintTableDataRowSpanCell(alignment,rows,str) { var style=cell_style+" text-align: "+alignment+";"; println(" ",str,""); } function ZeroPad(number,padlen) { var ret=number.toString(10); if(!padlen || ret.length>=padlen) return ret; return Math.pow(10,padlen-ret.length).toString().slice(1)+ret; } function GetKeyVal(path, key) { var val=GetRegistryKeyValue(path, key); return (IsValid(val)) ? RegistryKeyValueToString(val.value,val.type) : ""; } function fred_report_html() { // TODO: There is more here. // Check http://www.forensicswiki.org/wiki/USB_History_Viewing var val; println("

USB storage devices

"); // Preload MountedDevices to possibly identify mount points of USB storage // devices var mnt_keys=GetRegistryKeys("\\MountedDevices"); var mnt_values=new Array(); if(IsValid(mnt_keys)) { for(var i=0;i"); println(" "); // Are USB storage devices enabled? // http://www.forensicmag.com/article/windows-7-registry-forensics-part-5 // Is this true for WinXP etc.. ??? var val=GetRegistryKeyValue(cur_controlset+"\\services\\USBSTOR","Start"); if(IsValid(val)) { val=RegistryKeyValueToString(val.value,val.type); val=parseInt(String(val).substr(2,8),10); switch(val) { case 3: println(" "); break; case 4: println(" "); break; default: println(" "); } } else { println(" "); } println("
Storage driver enabled:Yes
Storage driver enabled:No
Storage driver enabled:Unknown
Storage driver enabled:Unknown
"); println("

"); println("

"); var storage_roots=GetRegistryNodes(cur_controlset+"\\Enum\\USBSTOR"); if(IsValid(storage_roots)) { println(" "); println(" "); PrintTableHeaderCell("Vendor Name"); PrintTableHeaderCell("Unique ID"); PrintTableHeaderCell("Class"); PrintTableHeaderCell("Friendly name"); PrintTableHeaderCell("Mount point(s)"); PrintTableHeaderCell("Parent ID"); PrintTableHeaderCell("Device description"); PrintTableHeaderCell("First connection1"); PrintTableHeaderCell("Last connection1"); println(" "); for(var i=0;i1) { println(" "); PrintTableDataRowSpanCell("left",mount_points,storage_roots[i]); PrintTableDataRowSpanCell("left",mount_points,device_id); PrintTableDataRowSpanCell("left",mount_points,device_class); PrintTableDataRowSpanCell("left",mount_points,device_friendly_name); PrintTableDataCell("left",device_mount_points[0]); PrintTableDataRowSpanCell("left",mount_points,device_parent_id); PrintTableDataRowSpanCell("left",mount_points,device_desc); PrintTableDataRowSpanCell("left",mount_points,device_first_connection); PrintTableDataRowSpanCell("left",mount_points,device_last_connection); println(" "); for(var iii=1;iii"); PrintTableDataCell("left",device_mount_points[iii]); println(" "); } } else { println(" "); PrintTableDataCell("left",storage_roots[i]); PrintTableDataCell("left",device_id); PrintTableDataCell("left",device_class); PrintTableDataCell("left",device_friendly_name); if(mount_points!=0) { PrintTableDataCell("left",device_mount_points[0]); } else { PrintTableDataCell("left","n/a"); } PrintTableDataCell("left",device_parent_id); PrintTableDataCell("left",device_desc); PrintTableDataCell("left",device_first_connection); PrintTableDataCell("left",device_last_connection); println(" "); } } } println("
"); println("     1 Might be incorrect"); println("
"); } else { println(" This registry hive does not contain a list of attached USB storage devices!"); } println("

"); } else { println("

"); println(" Unable to determine current control set!
"); println(" Are you sure you are running this report against the correct registry hive?"); println("

"); } }