Help
RSS
API
Feed
Maltego
Contact
Domain > pcsportal.net
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-06-17
172.67.72.3
(
ClassC
)
2026-01-24
104.26.15.155
(
ClassC
)
Port 443
HTTP/1.1 302 FoundDate: Sat, 24 Jan 2026 01:10:36 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveCache-Control: no-cache, no-storepragma: no-cachelocation: /security/loginSet-Cookie: .AspNetCore.Antiforgery.Of9C5DXQWDoCfDJ8DoPSsqSHjlBvT706WHfogQ9vvWqFaHKkPY_jre8q9CSeME122f2i__gv07GKNPjHF4hlDMWMsNhuicnNukCOrWCVC_I4ubbZok5OVWvCqSZXPY0QUvV5oG2Hh40Lnq4xmvND5D8m2LKrssDUM2ggX4; path/; samesitestrict; httponly; SameSitelaxx-frame-options: SAMEORIGINx-powered-by: Kiwastrict-transport-security: max-age31536000; includeSubDomainscf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sqmOx93BzLzXPglDczjsmGQvAm8L8oG5142wEiXp%2FmXLwfuEYEkgtvBZJJvHoTNAYjuM1Ms6Tm5kDtcHib%2BXABtsGkXnt8LVIffinig%3D%3D}}Server: cloudflareCF-RAY: 9c2ba6e95dbfdebd-PDX !DOCTYPE html>html>head> meta charsetutf-8 /> meta nameviewport contentwidthdevice-width, initial-scale1.0 /> title>Home Page - KPC Portal/title> link relstylesheet hrefhttps://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css />meta namex-stylesheet-fallback-test content classsr-only />script>!function(a,b,c,d){var e,fdocument,gf.getElementsByTagName(SCRIPT),hgg.length-1.previousElementSibling,if.defaultView&&f.defaultView.getComputedStyle?f.defaultView.getComputedStyle(h):h.currentStyle;if(i&&ia!b)for(e0;ec.length;e++)f.write(link href+ce+ +d+/>)}(position,absolute,/lib/bootstrap/dist/css/bootstrap.min.css, rel\u0022stylesheet\u0022 );/script> link relstylesheet href/css/site.css?vl5VC-eIa7L202p8HDctqRBt9f9P2fjmxs0egTejLk40 /> link relstylesheet href/css/portal.css?vuLNIprsLjUz22Y7VhWccXxeM6F6MTNG6w3FXswLfKCs /> link relstylesheet href/css/bootstrap-datetimepicker.min.css?vff4Vuur4aYrm0ZOAEC_me1LBOcid7PJ5oP9xxvJ0AKQ /> link relstylesheet href/fontawesome/css/fontawesome-all.min.css?vXiRSOApW819BepAfCjcL6bw8Inj5sOHYyVa_l_P93-Y />/head>body> script srchttps://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js crossoriginanonymous integritysha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk> /script>script>(window.jQuery||document.write(\u003Cscript src\u0022/lib/jquery/dist/jquery.min.js\u0022 crossorigin\u0022anonymous\u0022 integrity\u0022sha384-K\u002BctZQ\u002BLL8q6tP7I94W\u002BqzQsfRV2a\u002BAfHIi9k8z8l9ggpc8X\u002BYtst4yBo/hH\u002B8Fk\u0022\u003E\u003C/script\u003E));/script> script srchttps://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js crossoriginanonymous integritysha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa> /script>script>(window.jQuery && window.jQuery.fn && window.jQuery.fn.modal||document.write(\u003Cscript src\u0022/lib/bootstrap/dist/js/bootstrap.min.js\u0022 crossorigin\u0022anonymous\u0022 integrity\u0022sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa\u0022\u003E\u003C/script\u003E));/script> script src/js/site.js?vtREvvPDATMchVrq-dkoi9oyd_X07B8OL_b92AwO0F3c>/script> script src/js/Dialogs.js?vQasXB_4M5ff3Cf7OSJSTOu0sONdO9Y34ioBRup4ZvJc>/script> script src/js/bootstrap-datetimepicker.min.js?vEv-QAyb36DQvt8fcHcFX2jNsgXvJbR9wCdTIxRFfGzU>/script> script src/js/FixedHeaders.js?vPivnPk9_VGmtSX_GQz4G9ifdSyyKzaTCiMK91k_NHkM>/script> script src/js/bootstrap-typeahead.min.js?vZcyEf5zgzAay-6DOwmFp5EbnK25wbCmzUzL8WEmRow8>/script> script> var LastCallResult ; var ScrollerIndex -1; var ScrollerWidth 0; var ScrollerPause 0; var ScrollerSpeed 2; var ScrollerInterval 10; //Constant text strings var tsUserProfileLoadException An exception was thrown while loading the user profile:br>br>; var tsUserProfileNoUserName User Name cannot be blank; var tsUserProfileNoFirstName First Name cannot be blank; var tsUserProfileNoSurname Surname cannot be blank; var tsUserProfileSaveProblem Unable to save user details. The following problems were found:br>br>; var tsUserProfileSaveException Unable to save the user details. The following error was returned:br>br>; var tsUserProfileLoading Loading user details...; //***************************************************************************** // Routine: OpenModule // Outline: Called when the user wants to open a module, this routine simply... // gets the required module loaded into the display div and gets that // div onscreen //***************************************************************************** function OpenModule(e, Module, Params) { e.stopPropagation(); //Stop the event from bubbling up the controllist if (Module XXX) //Is this module linked to something? { //Nope - Complain and get out ShowMsgBox(You do not have access to this module.br>br>To access this module, please contact your account manager); } else { ShowWaitMsg(Opening module...); setTimeout(function () { OpenModuleExecute(Module, Params); }, 10); } } function OpenModuleExecute(Module, Params) { $.ajax({ url: /Home/LoadModule, data: { Module: Module, Params: Params }, cache: false, type: POST, dataType: html, success: function (data, textStatus, XMLHttpRequest) { HideWaitMsg(); $(#divModuleDsp).html(data); document.getElementById(divModule).style.display block; }, error: function (jqXHR, textStatus, errorThrown) { ShowErrorMsgBox(There was an error opening the module:br>br> + errorThrown); } }); } //***************************************************************************** // Routine: CloseModule // Outline: The user wants to close the module...so just close the display div //***************************************************************************** function CloseModule() { document.getElementById(divModule).style.display none; } //***************************************************************************** // Routine: SwitchCustomer // Outline: The user wants to switch customer. The easiest way to do this is // to reload the page, passing through the new selection //***************************************************************************** function SwitchCustomer() { window.location.replace(/Home/Index?CstID + document.getElementById(cmbMasterCustomer).value); } //***************************************************************************** // Routine: SelectDynamicModuleTab // Outline: The user has selected a tab in the module currently being // displayed. We need to take the selection and make the div that // corresponds to the selected tab visible (hiding all of the other // tabs in the process) *and* get the contents of the tab loaded from // the server //***************************************************************************** function SelectDynamicModuleTab(TabName, URL, DisplayDiv, Data) { ShowWaitMsg(Loading tab...); setTimeout(function () { SelectDynamicModuleTabExecute(TabName, URL, DisplayDiv, Data); }, 10); } function SelectDynamicModuleTabExecute(TabName, URL, DisplayDiv, Data) { $.ajax({ url: URL, data: Data, cache: false, type: POST, dataType: html, success: function (data, textStatus, XMLHttpRequest) { HideWaitMsg(); //We got something back...so put it onscreen $(# + DisplayDiv).html(data); //Make sure that we select the users tab if (TabName ! ) //Do we have a tab to work with? { //Yes - Try to select it SelectModuleTab(TabName); } }, error: function (jqXHR, textStatus, errorThrown) { ShowErrorMsgBox(There was an error opening the selected tab:br>br> + errorThrown); } }); } //***************************************************************************** // Routine: SelectModuleTab // Outline: The user has selected a tab in the module currently being // displayed. We need to take the selection and make the div that // corresponds to the selected tab visible (hiding all of the other // tabs in the process) //***************************************************************************** function SelectModuleTab(TabName) { var DisplayPanelID ; $(id^spnTab).each(function () { $(this).removeClass(TabSelected); DisplayPanelID this.id; DisplayPanelID DisplayPanelID.replace(spnTab, divTab); document.getElementById(DisplayPanelID).style.display none; }); $(# + TabName).addClass(TabSelected); DisplayPanelID TabName.replace(spnTab, divTab); document.getElementById(DisplayPanelID).style.display block; } //***************************************************************************** // Routine: SubmitForm // Outline: When called, this routine (and the associated Execute method) grabs // all of the input controls from the specified div and submits them // to the specified URL. If a disply div is supplied, any results are // shown in that div //***************************************************************************** function SubmitForm(formName, URL, displayDivName) { ShowWaitMsg(Please wait...); setTimeout(function () { SubmitFormExecute(formName, URL, displayDivName); }, 10); } function SubmitFormExecute(formName, URL, displayDivName) { //Get the form values into a chunk of JSON so that we can more easily pass the form values into the controller method var form ; if (formName ! ) { if (document.getElementById(formName) ! null) { //form $(# + formName).serialize(); form $(# + formName).find(input, textarea, select).serialize(); } } $.ajax({ type: POST, url: URL, data: form, dataType: html, async: false, success: function (data, textStatus, XMLHttpRequest) { if (displayDivName ! ) //Do we have a display div to re-populate? { //Yes - Stream the returned data directly into teh div as HTML if (document.getElementById(displayDivName) ! null) { $(# + displayDivName).html(data); //The controller *should* return us an updated partial view...so display it } } else { //No - We should have been returned a results string. Store it so that whatever called us can access it LastCallResult data; } HideWaitMsg(); }, error: function (jqXHR, textStatus, errorThrown) { ShowErrorMsgBox(errorThrown); } }); } //***************************************************************************** // Routine: SubmitFormAndWaitForResult // Outline: When called, this routine calls the SubmitFormExecute method, waits // for it to finish and then returns whatever data was returned // (rather than have it displayed onscreen in a div) //***************************************************************************** function SubmitFormAndWaitForResult(formName, URL) { SubmitFormExecute(formName, URL, ); return CheckForErrorResult(LastCallResult, true); } //***************************************************************************** // Routine: CheckForErrorResult // Outline: When called, this routine checks to see if the supplied data is // considered a failure or not. If the data begins with SUCCESS then // its considered success //***************************************************************************** function CheckForErrorResult(ResultMsg, EmptyIsOK) { if (ResultMsg) //Does the message even exist? { //Yes - See if it begins with success if ((ResultMsg.trim() ) || (ResultMsg.toUpperCase().trim().indexOf(SUCCESS) 0)) { return ; } else { return ResultMsg; } } else { //No - Could be a problem if (EmptyIsOK) //Is an empty string a valid result? { //Yes - Return blank (success) return ; } else { //No - Return a message saying that the result was blank (when it shouldnt have been) return No result found; } } } //***************************************************************************** // Routine: ChangePsd // Outline: The user wants to change his/her password. We simply need to get a // dialog onscreen allowing the new password to be entered //***************************************************************************** function ChangePsd() { document.getElementById(edtOldPsd).value ; document.getElementById(edtNewPsd).value ; document.getElementById(edtCnfPsd).value ; document.getElementById(divPassword).style.display block; } //***************************************************************************** // Routine: SavePsd // Outline: The user wants to close theChange Password dialog. We need to // look at the Proceed parameter and, if true, send the request over // to the server (itll do all the validation for us) //***************************************************************************** function SavePsd(Proceed) { if (Proceed) //Are we going ahead with the change? { //Yes - Best send everything over to the server then and see what it thinks var Results SubmitFormAndWaitForResult(frmUpdatePsd, /Home/UpdatePsd); if (Results ! ) //Did we get any results? { //Yes - Display them ShowMsgBox(Results); } } //Regardless of whether we saved or not, close the dialog document.getElementById(divPassword).style.display none; } //***************************************************************************** // Routine: Authenticator // Outline: The user wants to either enable or disable authenticator validation // which means that we need to get their password (first) to check // that they can catually do this. Setup the enter password dialog // and then see what happens //***************************************************************************** function Authenticator(Enable) { document.getElementById(edtAuthPsd).value ; if (Enable) { document.getElementById(hidAuthenticatorSetup).value 1; document.getElementById(spnAuthenticatorSetup).innerHTML Please enter your password to setup authenticator app verification; } else { document.getElementById(hidAuthenticatorSetup).value 0; document.getElementById(spnAuthenticatorSetup).innerHTML Please enter your password to disable authenticator app verification; } document.getElementById(divAuthenticator).style.display block; } //***************************************************************************** // Routine: SetupAuthenticator // Outline: The user has closed the dialog asking for their password (to setup // the authenticator app). If the user wants to proceed, send // everything off to the server and deal with whatever comes back. If // the user *doesnt* want to proceed, just close the dialog //***************************************************************************** function SetupAuthenticator(Proceed) { if (Proceed) { var Results SubmitFormAndWaitForResult(frmAuthenticator, /Home/SetupAuthenticator); if (Results ! ) //Did we get any results? { //Yes - Display them $(#divAuthenticatorResult).html(Results); if (document.getElementById(divAuthenticatorSetupResults) ! null) //Do we have a setup dialog to show? { //Yes - Show it document.getElementById(divAuthenticatorResult).style.display block; } } document.getElementById(divAuthenticator).style.display none; } else { //No - Just close the dialog document.getElementById(divAuthenticator).style.display none; } } //***************************************************************************** // Routine: SelectDropDownOption // Outline: When called, this routine attempts to select the requested item // from the drop down control. If the value cant be found then there // is the option to select the first item in the list //***************************************************************************** function SelectDropDownOption(ControlName, SelectedValue, SelectFirstIfNotFound) { var Found false; var DropDownCTRL document.getElementById(ControlName); for (var Index 0; Index DropDownCTRL.options.length; Index++) //Loop through the drop down items... { if (DropDownCTRL.optionsIndex.value SelectedValue) //Is this the value were looking for? { //Yes - Select it DropDownCTRL.selectedIndex Index; Found true; break; } } if (!Found) //Did we find what we were looking for? { //No - Work out what to do if (SelectFirstIfNotFound) //Do we need to select the first item? { //Yes - Do it DropDownCTRL.selectedIndex 0; } } } //***************************************************************************** // Routine: AnimateScroller // Outline: The scrolelr needs updating...so update it //***************************************************************************** function AnimateScroller() { var Pos 0; if (ScrollerPause 0) //Are we paused? { //No - Move the message and make sure that it hasnt gone off the side of the screen var Pos document.getElementById(tblScroller).style.left; Pos parseInt(Pos) - ScrollerSpeed; document.getElementById(tblScroller).style.left Pos + px; if (Pos -ScrollerWidth) //Has the message gone off the left-hand side of the screen? { //Yes - We need a new message...so get one SetupScroller(); } else { //Nope - Just set the timer off again then setTimeout(AnimateScroller, ScrollerInterval); } } else { //Yes (were paused) - Just kick the timer off again then (but *dont* move the message) setTimeout(AnimateScroller, ScrollerInterval); } } //***************************************************************************** // Routine: SetupScroller // Outline: When called, this routine takes the current ScrollerIndex value and // passes it to the server asking for a new message to display. If we // get a message back then we display it, otherwise we shut the // scroller down //***************************************************************************** function SetupScroller() { $.ajax({ url: /Home/SetupScroller, data: { Index: ScrollerIndex }, cache: false, type: POST, dataType: html, success: function (data, textStatus, XMLHttpRequest) { if (data.length > 0) //Did we get any data back from tserver? { //Yes - Try to process it var ScreenWidth $(#divScroller).width(); var Elements data.split(%EOD%); if (Elements.length 4) //We should have four bits of data (*new* index, date colour, date text and message text)...do we? { //Yes - We can setup a message...so do it ScrollerIndex Elements0; document.getElementById(tdScrollDate).style.backgroundColor Elements1; document.getElementById(tdScrollDate).innerText Elements2; document.getElementById(tdScrollText).innerText Elements3; document.getElementById(divScroller).style.display block; document.getElementById(divMasterPanels).style.bottom 60px; $(#tblScroller).css(left, ScreenWidth + 10); ScrollerWidth $(#tblScroller).width(); //Record how long the message block is setTimeout(AnimateScroller, ScrollerInterval); //Now that our message is setup...get it animating } else { //No - Just hide the scroller document.getElementById(divScroller).style.display none; } } else { //No - No message...no scroller document.getElementById(divScroller).style.display none; } }, error: function (jqXHR, textStatus, errorThrown) { //We hit a problem...so play it safe and hide the scroller document.getElementById(divScroller).style.display none; } }); } //***************************************************************************** // Routine: OpenEvents // Outline: Called when the user clicks the scroller bar, this routine opens up // the updates/news module and makes sure that it automatically // switches to the News tab //***************************************************************************** function OpenEvents() { OpenModule(event, XXX, Events); }/script>style> .UserMenuItem:hover{ background-color: #8CC4DF; color: #000000; }/style>div styleposition:absolute; left:0px; top:0px; right:0px; height:60px; background-image:url(/images/Banners/banner-0.jpg); background-color:#8CC4DF; background-repeat: no-repeat; z-index:20; box-shadow:rgba(0, 0, 0, 0.5) 0px 5px 5px> div styleposition:absolute; top:10px; right:10px> table> tr> td> div classcircleBtn onclickdocument.getElementById(divUserMenu).style.display block; titleUser menu> i classfa fa-user-circle fa-2x>/i> /div> /td> /tr> /table> /div>/div>div styleposition:absolute; top:60px; bottom:0px; left:0px; right:0px; background-image:url(/images/Backdrops/backdrop-0.jpg);> div classDialog DialogShadow styleposition:absolute; left:50%; top:140px; width:300px; margin-left:-150px; padding:20px> No customers available.br />br />Please contact a system administrator to arrange to have access to customers setup /div>/div>div iddivUserMenu styleposition:absolute; top:0px; left:0px; right:0px; bottom:0px; z-index:20; display:none onclickdocument.getElementById(divUserMenu).style.display none> form methodpost idfrmLogout action/Security/Logout>input name__RequestVerificationToken typehidden valueCfDJ8DoPSsqSHjlBvT706WHfogS5OLrcuXxAZIIOvZTOTqm596NN6kxx6hMrGnaoEVXmd7pYVEj7_3OOysXSF9Bck-hHgyFVSv9ge0EEMSgKK2VGseUyLyk_n1N80tHAjSZbpIdFTAvv17zzEVce_7QpbyA />/form> div classDialog DialogShadow styleposition:absolute; top:20px; right:20px; padding-top:20px; padding-bottom:20px> table stylewidth:100%> tr classUserMenuItem onclickdocument.getElementById(divAbout).style.display block;> td stylewidth:20px;> /td> td>i classfa fa-info-circle fa-2x>/i>/td> td> About/td> td stylewidth:20px;> /td> /tr> tr classUserMenuItem idtrAuthenticator onclickAuthenticator(true)> td stylewidth:20px;> /td> td>i classfa fa-mobile-alt fa-2x>/i>/td> td idtdAuthenticator> Enable Authenticator Validation/td> td stylewidth:20px;> /td> /tr> tr classUserMenuItem onclickChangePsd()> td stylewidth:20px;> /td> td>i classfa fa-key fa-2x>/i>/td> td> Change Password/td> td stylewidth:20px;> /td> /tr> tr classUserMenuItem onclickdocument.getElementById(frmLogout).submit()> td>/td> td>i classfa fa-sign-out-alt fa-2x>/i>/td> td> Logout/td> td>/td> /tr> /table> /div>/div>div iddivPassword classMask> div classDialog DialogShadow styleposition:absolute; left:50%; top:200px; width: 400px; margin-left:-200px;> div styleposition:relative; padding:20px; padding-bottom:0px> form idfrmUpdatePsd> table stylewidth:100%> tr> td stylewidth:150px>Old Password/td> td>input typepassword classEditControl idedtOldPsd nameedtOldPsd />/td> /tr> tr>td classEditTableRowSpacer>/td>/tr> tr> td>New Password/td> td>input typepassword classEditControl idedtNewPsd nameedtNewPsd />/td> /tr> tr>td classEditTableRowSpacer>/td>/tr> tr> td>Confirm Password/td> td>input typepassword classEditControl idedtCnfPsd nameedtCnfPsd />/td> /tr> /table> /form> /div> div styleposition:relative; width:100%; padding:10px; height:60px> span classcircleBtn pull-right onclickSavePsd(false)>i classfa fa-times fa-2x>/i>/span> span classcircleBtn pull-right onclickSavePsd(true)>i classfa fa-check fa-2x>/i>/span> /div> /div>/div>div iddivAuthenticator classMask> div classDialog DialogShadow styleposition:absolute; left:50%; top:200px; width: 400px; margin-left:-200px;> div styleposition:relative; padding:20px; padding-bottom:0px> form idfrmAuthenticator> input typehidden idhidAuthenticatorSetup namehidAuthenticatorSetup /> span idspnAuthenticatorSetup>/span> input typepassword classEditControl idedtAuthPsd nameedtAuthPsd /> /form> /div> div styleposition:relative; width:100%; padding:10px; height:60px> span classcircleBtn pull-right onclickSetupAuthenticator(false)>i classfa fa-times fa-2x>/i>/span> span classcircleBtn pull-right onclickSetupAuthenticator(true)>i classfa fa-check fa-2x>/i>/span> /div> /div>/div>div iddivAuthenticatorResult classMask>/div>div iddivDialog classMask> div classDialog DialogShadow styleposition:absolute; left:50%; top:200px; width:400px; margin-left:-200px;> div styleposition:relative; width:100%; padding:20px; padding-bottom:0px> span idspnMessage>/span> input typetext idedtInput classEditControl /> /div> div styleposition:relative; width:100%; padding:10px; height:60px> span classcircleBtn pull-right idspnDialogCancel onclickCloseDlg(false)>i classfa fa-times fa-2x>/i>/span> span classcircleBtn pull-right idspnDialogOK onclickCloseDlg(true)>i classfa fa-check fa-2x>/i>/span> /div> /div>/div>div iddivAbout classMask> div classDialog DialogShadow styleposition:absolute; left:50%; top:200px; width:440px; margin-left:-220px; background-image:URL(/images/aboutimage2.png); background-repeat:no-repeat> div styleposition:relative; width:100%; padding:20px; padding-bottom:0px; height:140px> div styleposition:absolute; left:20px; bottom:-35px; font-size:x-small> ©Kiwa Product Compliance 2026 /div> /div> div styleposition:relative; width:100%; padding:10px; height:60px> span classcircleBtn pull-right onclickdocument.getElementById(divAbout).style.display none;>i classfa fa-check fa-2x>/i>/span> /div> /div>/div>script> SetupScroller(); /script> div iddivWaitMask classMask stylez-index:10000; display:none> div classDialog DialogShadow styleposition:absolute; top:50%; left:50%; margin-left:-150px; margin-top:-60px; width:300px; height:120px; padding:10px> table stylewidth:100%; height:100%> tr>td styletext-align: center; vertical-align:bottom>i classfa fa-circle-notch fa-pulse fa-3x>/i>/td>/tr> tr>td styleheight:8px>/td>/tr> tr>td styletext-align: center; vertical-align:top>span idspnWaitMsg>/span>/td>/tr> /table> /div> /div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]